簡體   English   中英

將記錄從asp.net插入SQL Server數據庫期間出錯

[英]Error during insert of record from asp.net into SQL Server database

在將數據插入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部分,因為您已經將.NET提供程序用於SQL Server。 .NET的提供程序名稱基於實現類是隱式的, 不需要在連接字符串中指定。 刪除時,您將不需要; Connect Timeout=900;結束時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();
}

看起來是時候開始閱讀文檔了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM