返回列表..所以请在这里 [英] to return a list..so please here
问题描述
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER 程序 [dbo]。[GetSuggestExsistName]( @ AreaID as numeric , @ Name as varchar ( 255 ), @ FatherName as varchar ( 255 ))
as
选择名称,
FatherName,
FK_Area_ID
来自 dbo.Farmer
其中 FK_Area_ID = @ AreaID 和
(名称类似 ' %' + @ Name + ' %')和
(FatherName like ' %' + @ FatherName + ' %')
我想在asp..where中创建数据访问层我想在d中返回list.so ata访问层iam面临错误..所以请帮助我..哪里有问题?什么是写作方法;
public static Models.BL.FarmerRegBL GetSuggestExsistName(BL.FarmerRegBL objModel)
{
SqlConnection sql = new SqlConnection(AppConfiguration.ConnectionString);
SqlCommand xCmd = new SqlCommand( GetSuggestExsistName ,sql);
xCmd.CommandType = CommandType.StoredProcedure;
sql.Open();
SqlDataAdapter xAdaptor = new SqlDataAdapter(xCmd);
DataTable xTable = new DataTable();
xAdaptor.Fill(xTable);
SFM.Models.BL.FarmerRegBL objModl = new SFM.Models.BL.FarmerRegBL();
foreach (DataRow dr in xTable.Rows)
{
// SFM.Models.BL.FarmerRegBL objModl = new SFM.Models.BL。 FarmerRegBL();
// {
// xCmd.Parameters.AddWithValue(@ AreaID,objModel.FK_Area_ID);
// xCmd.Parameters.AddWithValue(@ Name,objModel.Name);
// xCmd.Parameters.AddWithValue(@ FatherName,objModel.FatherName);
objModl.FK_Area_ID = int .Parse(dr [ areaID表示跨度>]的ToString());
objModl.Name = dr [ 名称]。ToString();
objModl.FatherName = dr [ FatherName]。ToString();
int count = xCmd.ExecuteNonQuery();
sql.Close();
}
return objModel;
}
我的错误是:
过程或函数'GetSuggestExsistName'需要参数'@AreaID',这是未提供的。
请求帮助。
代码块添加 - OriginalGriff [/编辑]
尝试这样的事情:
public static IList< Models.BL.FarmerRegBL> GetSuggestExsistName(BL.FarmerRegBL objModel)
{
使用(SqlConnection sql = new SqlConnection(AppConfiguration.ConnectionString))
{
sql.Open();
SqlCommand xCmd = new SqlCommand( GetSuggestExsistName,sql);
xCmd.CommandType = CommandType.StoredProcedure;
xCmd.Parameters.AddWithValue( @ AreaID,objModel.FK_Area_ID);
xCmd.Parameters.AddWithValue( @ Name,objModel.Name);
xCmd.Parameters.AddWithValue( @ FatherName,objModel.FatherName)
SqlDataReader reader = xCmd.ExecuteReader();
var result = new 列表< Models.BL.FarmerRegBL>() ;
while (reader.Read())
{
result.Add(
new Models.BL.FarmerRegBL {
FK_Area_ID = int .Parse(reader [ AreaID]。ToString());
Name = reader [ 名称]。ToString();
FatherName = reader [ FatherName]。ToString();
}
);
}
返回结果;
}
请注意,我看不到你的模型,因此我做了一些假设。
这可能与你评论了设置参数值的行有关:
// xCmd.Parameters.AddWithValue( @AreaID,objModel.FK_Area_ID);
// xCmd.Parameters.AddWithValue(@ Name,objModel.Name);
// xCmd.Parameters.AddWithValue(@ FatherName,objModel.FatherName);
但是如果你想在循环中执行此操作,则每次在循环中都需要构造一个新的SqlCommand,或者清除参数并每次添加它们。
hey ...i made a store procedure in sql like that:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[GetSuggestExsistName](@AreaID as numeric,@Name as varchar(255),@FatherName as varchar(255))
as
Select Name,
FatherName,
FK_Area_ID
from dbo.Farmer
where FK_Area_ID=@AreaID and
(Name Like '%'+ @Name +'%') and
(FatherName like '%'+ @FatherName +'%')
and i want to make data access layer in asp..where i want to return a list.so in data access layer iam facing error..so please help me..where is a problem? and whats its write method;
public static Models.BL.FarmerRegBL GetSuggestExsistName(BL.FarmerRegBL objModel)
{
SqlConnection sql = new SqlConnection(AppConfiguration.ConnectionString);
SqlCommand xCmd = new SqlCommand("GetSuggestExsistName", sql);
xCmd.CommandType = CommandType.StoredProcedure;
sql.Open();
SqlDataAdapter xAdaptor = new SqlDataAdapter(xCmd);
DataTable xTable = new DataTable();
xAdaptor.Fill(xTable);
SFM.Models.BL.FarmerRegBL objModl = new SFM.Models.BL.FarmerRegBL();
foreach (DataRow dr in xTable.Rows)
{
//SFM.Models.BL.FarmerRegBL objModl = new SFM.Models.BL.FarmerRegBL();
//{
// xCmd.Parameters.AddWithValue("@AreaID", objModel.FK_Area_ID);
// xCmd.Parameters.AddWithValue("@Name", objModel.Name);
// xCmd.Parameters.AddWithValue("@FatherName", objModel.FatherName);
objModl.FK_Area_ID = int.Parse(dr["AreaID"].ToString());
objModl.Name = dr["Name"].ToString();
objModl.FatherName = dr["FatherName"].ToString();
int count = xCmd.ExecuteNonQuery();
sql.Close();
}
return objModel;
}
my error is :
Procedure or Function 'GetSuggestExsistName' expects parameter '@AreaID', which was not supplied.
plese help.
[edit]Code block added - OriginalGriff[/edit]
Try something like this:
public static IList<Models.BL.FarmerRegBL> GetSuggestExsistName(BL.FarmerRegBL objModel) { using(SqlConnection sql = new SqlConnection(AppConfiguration.ConnectionString)) { sql.Open(); SqlCommand xCmd = new SqlCommand("GetSuggestExsistName", sql); xCmd.CommandType = CommandType.StoredProcedure; xCmd.Parameters.AddWithValue("@AreaID", objModel.FK_Area_ID); xCmd.Parameters.AddWithValue("@Name", objModel.Name); xCmd.Parameters.AddWithValue("@FatherName", objModel.FatherName) SqlDataReader reader = xCmd.ExecuteReader(); var result = new List<Models.BL.FarmerRegBL>(); while (reader.Read()) { result.Add( new Models.BL.FarmerRegBL { FK_Area_ID = int.Parse(reader["AreaID"].ToString()); Name = reader["Name"].ToString(); FatherName = reader["FatherName"].ToString(); } ); } return result; }
Be aware, that I can''t see your model, thus I have made some assumptions.
This could be related to the fact that you commented the lines which set the parameter values out:
// xCmd.Parameters.AddWithValue("@AreaID", objModel.FK_Area_ID); // xCmd.Parameters.AddWithValue("@Name", objModel.Name); // xCmd.Parameters.AddWithValue("@FatherName", objModel.FatherName);But if you want to do this in a loop, you will either need to construct a new SqlCommand each time in the loop, or clear the parameters and add them each time instead.
这篇关于返回列表..所以请在这里的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!