【发布时间】:2019-01-07 01:24:35
【问题描述】:
如果我尝试将数据插入表中,我会遇到异常,但在代码中我没有发现任何错误。
代码如下:
string conStr = "Data Source=.;Initial Catalog=WorkshopManagement; user id=sa; password=root";
string cmdStr = "insert into tbl_Workshop values (@WorkShopTitle, @WorkShopDate, @WorkshopDuration, @WorkShopTopics, null, null, null, null)";
SqlConnection con = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand(cmdStr, con);
cmd.Parameters.AddWithValue("@WorkShopTitle", wP.WorkShopTitle);
cmd.Parameters.AddWithValue("@WorkShopDate", wP.WorkShopDate);
cmd.Parameters.AddWithValue("@WorkshopDuration", wP.WorkShopDuration);
cmd.Parameters.AddWithValue("@WorkShopTopics", wP.WorkShopTopics);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
在此之后我遇到了这样的异常,请帮我解决这个异常。是不是因为错误的连接字符串而抛出异常?
错误:
iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/2/ROOT-1-131774469285624973): 加载'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4。 0.0.0__b77a5c561934e089\System.Transactions.dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。 抛出异常:System.Data.dll 中的“System.Data.SqlClient.SqlException”
【问题讨论】:
-
也许修复连接字符串?您可能还想看看这个。 blogs.msmvps.com/jcoehoorn/blog/2014/05/12/…您可能还阅读了错误消息中的建议。
-
您应该查看Can we stop using AddWithValue() already? 并停止使用
.AddWithValue()- 它可能会导致意想不到和令人惊讶的结果... -
2 附注:您应该在
insert中指定列,如果架构发生更改(添加列或更改位置),它不会破坏代码。 2) 为您的连接和命令实例使用using语句,这确保即使在发生异常时资源也被关闭/处置。 -
请分享您的表架构...我最好的猜测是您缺少为非空和非默认列传递值。如果不是,另一个最可能的原因是模式中的数据类型与添加到参数的数据不匹配。您共享的异常不是正确的。如果能检索到 SqlException 的文本,问题就清楚了。
标签: c# asp.net sql-server sql-server-2008 ado.net