异常抛出..在SqlParameter中 [英] Exception throws .. in SqlParameter
本文介绍了异常抛出..在SqlParameter中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨伙计们......
在我的应用程序中我得到例外
SqlParameter已经包含在另一个SqlParameterCollection中......
hi guys..
In my application i getting exception
The SqlParameter is already contained by another SqlParameterCollection...
public string InsertRetailer(Business.Retailers objRetailer)
{
string retInsertRet = string.Empty;
try
{
using (SqlConnection conn = Connection.OpenConnection())
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT_RETAILER";
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Connection = conn;
SqlParameter[] sqlParams=new SqlParameter [8];
SqlParameter RetailerCode = new SqlParameter("@RetailerCode", objRetailer.RetailerCode);
RetailerCode.Direction = System.Data.ParameterDirection.Input;
RetailerCode.DbType = System.Data.DbType.String;
sqlParams[0] = RetailerCode;
SqlParameter RetailerName = new SqlParameter("@RetailerName", objRetailer.RetailerName);
RetailerName.Direction = System.Data.ParameterDirection.Input;
RetailerName.DbType = System.Data.DbType.String;
sqlParams[1] = RetailerName;
SqlParameter EVD_No = new SqlParameter("EVD_No", objRetailer.EVD_No);
EVD_No.Direction = System.Data.ParameterDirection.Input;
EVD_No.DbType = System.Data.DbType.String;
sqlParams[2] = EVD_No;
SqlParameter Address = new SqlParameter("@Address", objRetailer.Address);
Address.Direction = System.Data.ParameterDirection.Input;
Address.DbType = System.Data.DbType.String;
sqlParams[3] = Address;
SqlParameter OpeningBalance = new SqlParameter("@OpeningBalance", objRetailer.OpeningBalance);
OpeningBalance.Direction = System.Data.ParameterDirection.Input;
OpeningBalance.DbType = System.Data.DbType.Currency;
sqlParams[4] = OpeningBalance;
SqlParameter WorkingHours = new SqlParameter("@WorkingHours", objRetailer.WorkingHours);
WorkingHours.Direction = System.Data.ParameterDirection.Input;
WorkingHours.DbType = System.Data.DbType.Double;
sqlParams[5] = WorkingHours;
SqlParameter ContactPerson_Name = new SqlParameter("@ContactPerson_Name", objRetailer.ContactPerson_Name);
ContactPerson_Name.Direction = System.Data.ParameterDirection.Input;
ContactPerson_Name.DbType = System.Data.DbType.String;
sqlParams[6] = ContactPerson_Name;
SqlParameter ContactPerson_Phone = new SqlParameter("@ContactPerson_Phone", objRetailer.ContactPerson_Phone);
ContactPerson_Phone.Direction = System.Data.ParameterDirection.Input;
ContactPerson_Phone.DbType = System.Data.DbType.Double;
sqlParams[7] = ContactPerson_Phone;
cmd.Parameters.AddRange(sqlParams);
cmd.ExecuteNonQuery();
retInsertRet = Msg.Value.ToString();
需要你的帮助
Thnxx提前
need your help
Thnxx in advance
推荐答案
对于下面给出的行,您缺少@符号。不知道这是不是确切的原因,但微软有时会因为简单的错误而抛出奇怪的错误消息! :)
For the given below line you are missing the "@" symbol. Don't know if this is the exact reason, but Microsoft sometime throws strange error messages for simple errors!!!! :)
SqlParameter EVD_No = new SqlParameter("EVD_No", objRetailer.EVD_No);
尝试摆脱你的数组并逐个添加你的SqlParameters;这肯定会更加可调试。
除非你没有显示某些代码,否则数组的使用不会在这里提供任何附加价值;它只会使调试更难。
Try to get rid of your array and add your SqlParameters one by one ; this will, for sure, be much more debuggable.
Unless there's some code you do not show, the use of the array does not provide any added value here ; it just makes the debugging harder.
这篇关于异常抛出..在SqlParameter中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文