将记录从asp.net插入SQL Server数据库时出错
本文关键字:Server 数据库 出错 SQL 插入 记录 asp net | 更新日期: 2023-09-27 18:27:22
在将数据插入SQL Server数据库的过程中出现此错误
这是我在按钮点击事件中的代码
try
{
string ConnString = "Data Source=(LocalDB)'v11.0;AttachDbFilename=''MOD03-PC''Share Folder mod03''amts''amtsfuelconsuption''AmtsFuelConsumption''AmtsFuelConsumption''App_Data''AmtsDatabse.mdf;Integrated Security=True;Connect Timeout=900,providerName=System.Data.SqlClient";
SqlConnection con = new SqlConnection(@ConnString);
SqlCommand cmd = new SqlCommand("InsertBodyTypeMaster", con);
cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("bodytypename", txtBTname.Text.ToString());
con.Open();
int k = cmd.ExecuteNonQuery();
if (k != 0)
{
lblmessage.Text = "Record Inserted Succesfully into the Database";
lblmessage.ForeColor = System.Drawing.Color.CornflowerBlue;
}
con.Close();
con.Dispose();
}
catch (Exception ex)
{
lblmessage.Text = ex.ToString();
}
我发现了一些错误;
- 如前所述,您需要将
Connect Timeout=900,
更改为Connect Timeout=900;
- 您需要删除
providerName=System.Data.SqlClient
部分,因为您已经使用SQL Server的.NET提供程序。.NET的提供程序名称基于实现类是隐式的,不需要在连接字符串中指定。当您删除此项时,您将不再需要Connect Timeout=900;
末尾的;
- 使用
using
语句自动处理连接和命令,而不是手动调用Close
或Dispose
方法 - 尽量不要使用
AddWithValue
。它有时可能会产生意想不到的结果。使用Add
方法重载来指定参数类型及其大小
最终连接字符串应为;
string ConnString = "Data Source=(LocalDB)'v11.0,AttachDbFilename=''MOD03-PC''Share Folder mod03''amts''amtsfuelconsuption''AmtsFuelConsumption''AmtsFuelConsumption''App_Data''AmtsDatabse.mdf;Integrated Security=True;Connect Timeout=900";
在连接字符串的连接超时属性中,900后面有一个逗号,而不是分号。
因为您的连接字符串非常奇怪。移除那些;
并用,
替换它们。此外,请确保拼写正确。它应该像
string ConnString = "Data Source=(LocalDB)'v11.0,AttachDbFilename=''MOD03-PC''Share Folder mod03''amts''amtsfuelconsuption''AmtsFuelConsumption''AmtsFuelConsumption''App_Data''AmtsDatabse.mdf,Integrated Security=True,Connect Timeout=900;providerName=System.Data.SqlClient";
还有下面的
SqlConnection con = new SqlConnection(@ConnString);
应该是
SqlConnection con = new SqlConnection(ConnString);
您在try
块中调用Dispose()
,这是一个大错误,如下所示。使用Using(...)
块(或)finally
块
try
{
....
con.Close();
con.Dispose();
}
应该是
finally
{
con.Close();
con.Dispose();
}
看来是时候开始通读文档了。