直接执行拼接SQL有数据,写带参数的就没有数据了,请帮看下代码。该如何解决
直接执行拼接SQL有数据,写带参数的就没有数据了,请帮看下代码。
请问In(@车间)能不能这么写呢?(我直接拼接SQL语句是有数据的,写带有参数的就没有数据了。)
------解决方案--------------------
不能这样写,必须一个个参数单独写
in(@车间1,@车间2)
sda.SelectCommand.Parameters.Add("@车间1",SqlDbType.VarChar,10).Value = "xxx"
sda.SelectCommand.Parameters.Add("@车间2",SqlDbType.VarChar,10).Value = "xxx"
------解决方案--------------------
用这个试试
"exec 'select 图号,车型,产品名称,LED屏编号,计划产量,下工作日计划产量,实际生产,计划产量-实际生产 as 未完成产量 from dbo.产品 where CONVERT(varchar(8),日期,112)=CONVERT(varchar(8),GETDATE(),112) And left(图号,2) in('+ @车间 +') Order by 图号'"
String strSql = "select 图号,车型,产品名称,LED屏编号,计划产量,下工作日计划产量,实际生产,计划产量-实际生产 as 未完成产量 " +
"from dbo.产品 " +
"where CONVERT(varchar(8),日期,112)=CONVERT(varchar(8),GETDATE(),112) " +
"And left(图号,2) in(@车间) " +
"Order by 图号";
//SqlConnection conn = new SqlConnection("server=zhw-pc\\sqlexpress; integrated security=true;database=产品生产");
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand(strSql, conn);
DataSet myds = new DataSet();
sda.SelectCommand.Parameters.Add("@车间",SqlDbType.VarChar,10).Value = str1;
sda.Fill(myds,"t1");
if (myds.Tables["t1"].Rows.Count != 0) //当天数据
{
DataList1.DataSource = myds.Tables["t1"];
DataList1.DataBind();
}
请问In(@车间)能不能这么写呢?(我直接拼接SQL语句是有数据的,写带有参数的就没有数据了。)
------解决方案--------------------
不能这样写,必须一个个参数单独写
in(@车间1,@车间2)
sda.SelectCommand.Parameters.Add("@车间1",SqlDbType.VarChar,10).Value = "xxx"
sda.SelectCommand.Parameters.Add("@车间2",SqlDbType.VarChar,10).Value = "xxx"
------解决方案--------------------
用这个试试
"exec 'select 图号,车型,产品名称,LED屏编号,计划产量,下工作日计划产量,实际生产,计划产量-实际生产 as 未完成产量 from dbo.产品 where CONVERT(varchar(8),日期,112)=CONVERT(varchar(8),GETDATE(),112) And left(图号,2) in('+ @车间 +') Order by 图号'"