SqlCommand 执行时 提示“以 。。。。开头的 标识符 太长。最大长度为 128。”

warlibrary 2011-10-28 09:51:45

string strUptsql = "insert into [T_loan_replace] ([manage_depart_no],[Lenders_name],[License],[owner],[owner_id_card],[owner_address],[loan_je],[usefulness],[loan_date],[return_date],[replace_date],[replace_je],[duty_man1],[duty_man2]) values (@manage_depart_no,@Lenders_name,@License,@owner,@owner_id_card,@owner_address,@loan_je,@usefulness,@loan_date,@return_date,@replace_date,@replace_je,@duty_man1,@duty_man2)";

string conn = ConfigurationManager.ConnectionStrings["zzrcb_loan_data_str"].ConnectionString;
SqlConnection Connection = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand(strUptsql, Connection);

cmd.Parameters.Add("@[manage_depart_no", SqlDbType.Char, 22);
cmd.Parameters["@[manage_depart_no"].Value = Lab_manage_depart_no.Text.Trim();

cmd.Parameters.Add("@Lenders_name", SqlDbType.NVarChar,120);
cmd.Parameters["@Lenders_name"].Value = Text_Lenders_name.Text.Trim();

cmd.Parameters.Add("@License", SqlDbType.NVarChar, 50);
cmd.Parameters["@License"].Value = Text_License.Text.Trim();

cmd.Parameters.Add("@owner", SqlDbType.NVarChar, 50);
cmd.Parameters["@owner"].Value = Text_owner.Text.Trim();

cmd.Parameters.Add("@owner_id_card", SqlDbType.Char, 18);
cmd.Parameters["@owner_id_card"].Value = Text_owner_id_card.Text;

cmd.Parameters.Add("@owner_address",SqlDbType.NVarChar,120);
cmd.Parameters["@owner_address"].Value = Text_owner_address.Text.Trim();

cmd.Parameters.Add("@loan_je", SqlDbType.Money);
cmd.Parameters["@loan_je"].Value = Decimal.Parse(text_loan_je.text);

cmd.Parameters.Add("@usefulness", SqlDbType.NVarChar,120);
cmd.Parameters["@usefulness"].Value = Text_usefulness.Text.Trim();

cmd.Parameters.Add("@loan_date", SqlDbType.DateTime);
cmd.Parameters["@loan_date"].Value = DateTime.Parse(text_loan_date.Text);

cmd.Parameters.Add("@return_date", SqlDbType.DateTime);
cmd.Parameters["@return_date"].Value = DateTime.Parse(text_return_date.Text);

cmd.Parameters.Add("@replace_date", SqlDbType.DateTime);
cmd.Parameters["@replace_date"].Value = DateTime.Parse(text_replace_date.Text);

cmd.Parameters.Add("@replace_je", SqlDbType.Money);
cmd.Parameters["@replace_je"].Value = Decimal.Parse(text_replace_je.text);

cmd.Parameters.Add("@duty_man1", SqlDbType.NVarChar, 20);
cmd.Parameters["@duty_man1"].Value = Text_duty_man1.Text.Trim();

cmd.Parameters.Add("@duty_man2", SqlDbType.NVarChar, 20);
cmd.Parameters["@duty_man2"].Value = Text_duty_man2.Text.Trim();
Connection.Open();
cmd.ExecuteNonQuery();
Connection.Close();

执行到 cmd.ExecuteNonQuery();这句时出错,提示
以 'manage_depart_no char(22),@Lenders_name nvarchar(120),@License nvarchar(50),@owner nvarchar(50),@owner_id_card char(18),@owner_a' 开头的 标识符 太长。最大长度为 128。
',' 附近有语法错误。


不知道是不是commandtext只能限制在128个字符内,如果是这样,有什么可代替的方法?
...全文
146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
warlibrary 2011-10-28
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@[manage_depart_no", SqlDbType.Char, 22);
cmd.Parameters["@[manage_depart_no"].Value = Lab_manage_depart_no.Text.Trim();


晕,问题出在这2句,没想到多一个 [ 会出现这种问题,被出错信息严重误导了,一直没注意到是这个细节,谢谢了
虫二二 2011-10-28
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@[manage_depart_no", SqlDbType.Char, 22);

这里有一个错误!! @[manage_depart_no
孟子E章 2011-10-28
  • 打赏
  • 举报
回复
另外cmd.Parameters.Add("@[manage_depart_no", SqlDbType.Char, 22);
这个里面多了个[
孟子E章 2011-10-28
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@owner_address",SqlDbType.NVarChar,120);
cmd.Parameters["@owner_address"].Value = Text_owner_address.Text.Trim();

改成
cmd.Parameters.Add("@owner_address",SqlDbType.NVarChar,255);
cmd.Parameters["@owner_address"].Value = Text_owner_address.Text.Trim();
试试


最简单的方法是这样写

cmd.Parameters.AddWithValue("@owner_address",Text_owner_address.Text.Trim());
只一行就可以了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧