返回列表..所以请在这里 [英] to return a list..so please here

查看:61
本文介绍了返回列表..所以请在这里的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿......我在sql中做了一个商店程序:



  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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆