将记录从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();
}

将记录从asp.net插入SQL Server数据库时出错

我发现了一些错误;

  • 如前所述,您需要将Connect Timeout=900,更改为Connect Timeout=900;
  • 您需要删除providerName=System.Data.SqlClient部分,因为您已经使用SQL Server的.NET提供程序。.NET的提供程序名称基于实现类是隐式的,不需要在连接字符串中指定。当您删除此项时,您将不再需要Connect Timeout=900;末尾的;
  • 使用using语句自动处理连接和命令,而不是手动调用CloseDispose方法
  • 尽量不要使用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();
}

看来是时候开始通读文档了。