作者:fuhuan9479184787 | 来源:互联网 | 2022-12-13 12:52
各位朋友,小弟的存储过程里面分别有三个数,分别是:@begin_datedatetime,@end_datedatetime,@departvarchar(50)%,@departvar
各位朋友,小弟的存储过程里面分别有三个数,分别是:@begin_date datetime,@end_date datetime,@depart varchar(50)='%',@depart varchar(50)
,请问下面的调用语句怎样改,才可以传进三个参数呢?请各位朋友赐教,谢谢!!!
。。。。。。。。。。
salesCMD.CommandType = CommandType.StoredProcedure;
SqlParameter myParm = salesCMD.Parameters.Add("@CategoryName",SqlDbType.NVarChar,15);
myParm.Value = "Beverages";
。。。。。。。。
上面的代码只能传入一个参数,但有三个参数的时候,应该将上面的存储过程怎样改,请各位朋友赐教,谢谢!!!
6 个解决方案
SqlParameter myParm1 = salesCMD.Parameters.Add("@CategoryName",SqlDbType.NVarChar,15);
myParm1.Value = "Beverages";
SqlParameter myParm2 = salesCMD.Parameters.Add("@depart",SqlDbType.NVarChar,50);
myParm2.Value = "asdqwf";
SqlParameter myParm3 = salesCMD.Parameters.Add("@depart2",SqlDbType.NVarChar,50);
myParm3.Value = "asdqwf2";
楼上的两位朋友,问多一句,如果将下面的改为ExecuteScalar();该怎样改呢?请两位朋友再次赐教,另外,书上说ExecuteScalar();只返回第一行第一列的值,其实ExecuteReader()是不是可以实现ExecuteScalar();的所有功能的呢?两者最大的区别是什么呢?
namespace ConsoleApplication1
{
class Program
{
public int i;
static void Main(string[] args)
{
SqlConnection conn =new SqlConnection(@"Data Source=SUREWINJORDON\WORKSYSTEM;Initial Catalog=worksystem;Persist Security Info=True;User ID=SA;password=0000");
SqlCommand comma = conn.CreateCommand();
comma.CommandText = "Kaoqinquery";
comma.CommandType = CommandType.StoredProcedure;
SqlParameter value1 = comma.Parameters.Add("@emp_id", SqlDbType.NChar, 20);
value1.Value = "1";
conn.Open();
SqlDataReader readdata = comma.ExecuteReader();
int i = new int();
while (readdata.Read())
{
i += 1;
Console.WriteLine("{0}",readdata.GetString(3));
}
Console.WriteLine("{0}",i);
readdata.Close();
conn.Close();
Console.ReadLine();
}
}
}
ExecuteScalar()只返回第1列第1行数据,
可以直接comma.ExecuteScalar()来调用。
ExecuteReader方法返回一个只向前的reader对象,要使用这个reader对象,必须保持链接是打开的。
而ExecuteScalar一般用于只返回1个结果数据的情况下,比如取表中的数据库总行数,而ExecuteReader一般用于读取大量数据的时候,用只读向前的方式读取
1、如果想从存储过程中返回值,可以设置参数的OUTPUT方向.
2、ExecuteReader可以实现ExecuteScalar的功能,但是ExecuteReader需要将数据读到客户
端.
SqlParameter myParm1 = salesCMD.Parameters.Add("@CategoryName",SqlDbType.NVarChar,15);
myParm1.Value = "Beverages";
SqlParameter myParm2 = salesCMD.Parameters.Add("@depart",SqlDbType.NVarChar,50);
myParm2.Value = "asdqwf";
SqlParameter myParm3 = salesCMD.Parameters.Add("@depart2",SqlDbType.NVarChar,50);
myParm3.Value = "asdqwf2";
void SqlDataReader getsqlreader(string con)
{
SqlConnection con=new SqlConnection(strCon);
con.Open();
string sql ="select Beverages,asdqwf,asdqwf2 from 表"
SqlCommand cmd = new SqlCommand(sql , con);
return cmd.ExecuteReader();
}
SqlDataReader dr = getsqlreader(sql);
dr.Read();
string a1 = dr["表"].ToString();
string a2 = dr["表"].ToString();
string a3 = dr["表"].ToString();
dr.Close();
如果要传多个参数的话
Response.Redirect("bb.aspx?aa1="+Server.UrlEncode(a1) +"&aaa1="+Server.UrlEncode(aaa1)+");后面可以接N多