dsnotcheck=new DataSet();
dbp.Open();
SqlParameter[] parms= {
new SqlParameter("@MaterialCD",SqlDbType.NVarChar,100),
new SqlParameter("@VenderCD",SqlDbType.NVarChar,100)
};
parms[0].Value=cboMaterialCD.SelectedText;
parms[1].Value=cboVenderCD.SelectedText; dsnotcheck=dbp.OpenDataSet("sp_ProductPlan_ShowNoCheckInfo",parms);
------------------------------------------------
CREATE PROCEDURE sp_ProductPlan_ShowNoCheckInfo
@MaterialCD INT
,@VenderCD INT
AS
------------------------------------------------
疑问点:
1.SqlParameter和存储过程中的参数名是不是必须一样
2.SqlParameter定义参数时的顺序必须和存储过程中参数的顺序一致
3.把parms传入后,要执行的语句是怎样构造出来的
4.使用parms时的注意点?
我曾经碰到parms[x].Value赋值时出现 NULL ,执行sql就报错
例如: sp_ProductPlan_ShowNoCheckInfo 参数1,参数2,参数3
参数2赋值为空时,则变为 sp_ProductPlan_ShowNoCheckInfo 参数1,,参数3
两个逗号挨着,不符合sql语法,这种情况如何处理
5.在程序中sql很多写法,是不是parms应该被提倡使用,而摒弃其他写法(比如拼接法)
dbp.Open();
SqlParameter[] parms= {
new SqlParameter("@MaterialCD",SqlDbType.NVarChar,100),
new SqlParameter("@VenderCD",SqlDbType.NVarChar,100)
};
parms[0].Value=cboMaterialCD.SelectedText;
parms[1].Value=cboVenderCD.SelectedText; dsnotcheck=dbp.OpenDataSet("sp_ProductPlan_ShowNoCheckInfo",parms);
------------------------------------------------
CREATE PROCEDURE sp_ProductPlan_ShowNoCheckInfo
@MaterialCD INT
,@VenderCD INT
AS
------------------------------------------------
疑问点:
1.SqlParameter和存储过程中的参数名是不是必须一样
2.SqlParameter定义参数时的顺序必须和存储过程中参数的顺序一致
3.把parms传入后,要执行的语句是怎样构造出来的
4.使用parms时的注意点?
我曾经碰到parms[x].Value赋值时出现 NULL ,执行sql就报错
例如: sp_ProductPlan_ShowNoCheckInfo 参数1,参数2,参数3
参数2赋值为空时,则变为 sp_ProductPlan_ShowNoCheckInfo 参数1,,参数3
两个逗号挨着,不符合sql语法,这种情况如何处理
5.在程序中sql很多写法,是不是parms应该被提倡使用,而摒弃其他写法(比如拼接法)
是的,如果参数名不一样,又怎么知道哪个对应哪个呢2:SqlParameter定义参数时的顺序必须和存储过程中参数的顺序一致
不一定,通过参数名对应,不用对应顺序的哦.这跟第一条是一样的.3:把parms传入后,要执行的语句是怎样构造出来的
不清楚,你试下在数据库里执行存储过程,那个SQL查询器会出现那个执行4:使用parms时的注意点?
数据的类型,赋值的注意是否赋的是空值,或者返回值是空值5.在程序中sql很多写法,是不是parms应该被提倡使用,而摒弃其他写法(比如拼接法)
看你的需要吧.
1.SqlParameter和存储过程中的参数名是不是必须一样
不一定
2.SqlParameter定义参数时的顺序必须和存储过程中参数的顺序一致
不一定
3.把parms传入后,要执行的语句是怎样构造出来的
?
4.使用parms时的注意点?
我曾经碰到parms[x].Value赋值时出现 NULL ,执行sql就报错
例如: sp_ProductPlan_ShowNoCheckInfo 参数1,参数2,参数3
参数2赋值为空时,则变为 sp_ProductPlan_ShowNoCheckInfo 参数1,,参数3
两个逗号挨着,不符合sql语法,这种情况如何处理
要么传着空值,要么给参数设个默认值,调用的时候不用传值
5.在程序中sql很多写法,是不是parms应该被提倡使用,而摒弃其他写法(比如拼接法)
不一定,看实际应用以上说话不一定正确,仅供参考
dbp.Open();
SqlParameter[] parms= {
new SqlParameter("@MaterialCD",SqlDbType.NVarChar,100),
new SqlParameter("@VenderCD",SqlDbType.NVarChar,100)
};
parms[0].Value=cboMaterialCD.SelectedText;
parms[1].Value=cboVenderCD.SelectedText; "@MaterialCD"是要和你定义的Sql语句中或
存储过程中参数相同
空值设置:
错误:
parms[0].Value=null;
正确:
parms[0].Value=DBNull.Value;
2: 不需要一致
3:构建sql 语句
4: 类型和值,DBNuLL
yes2.SqlParameter定义参数时的顺序必须和存储过程中参数的顺序一致
no 3.把parms传入后,要执行的语句是怎样构造出来的
传值后会自动构造好4.使用parms时的注意点?
我曾经碰到parms[x].Value赋值时出现 NULL ,执行sql就报错
例如: sp_ProductPlan_ShowNoCheckInfo 参数1,参数2,参数3
参数2赋值为空时,则变为 sp_ProductPlan_ShowNoCheckInfo 参数1,,参数3
两个逗号挨着,不符合sql语法,这种情况如何处理
传NULL5.在程序中sql很多写法,是不是parms应该被提倡使用,而摒弃其他写法(比如拼接法)
我认为是,拼接法既不安全又容易出错