2015-01-04 58 views
-1

我是C#新手的類型「System.Data.SqlClient.SqlException」的異常出現在System.Data.dll中,但在用戶代碼中的混亂沒有處理

我收到錯誤「的例外在System.Data.dll中發生類型'System.Data.SqlClient.SqlException',但沒有在用戶代碼中處理「當我按下提交按鈕,當應用程序運行時

這是我的代碼,我得到錯誤

public partial class About : Page 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     con.Open(); 
    } 

    protected void Button1_Click1(object sender, EventArgs e) 
    { 
     SqlCommand cmd = new SqlCommand("insert into Table values('" + txtName.Text + "','" + txtPrice.Text + "','" + txtQuan.Text + "','" + txtURL.Text + "')", con); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     Label1.Visible = true; 
     Label1.Text = "Your Data Stored Succesfully!"; 
     txtName.Text = ""; 
     txtPrice.Text = ""; 
     txtQuan.Text = ""; 
     txtURL.Text = ""; 
    }  
+0

第二次點擊按鈕時會發生嗎?也許您在第一次點擊該按鈕時連接關閉後再次嘗試連接。 –

+0

不,我只點擊一次按鈕,只有一次點擊後我得到錯誤 – James

+0

在cmd.ExecuteNonQuery上設置一些斷點..也圍繞try {} catch {}包裝該代碼,只是好奇...表不是你的桌子的名字是...?什麼是實際的表名?並更改插入查詢利用參數化查詢... – MethodMan

回答

0

您的代碼有多個問題。最明顯的是,正如你的錯誤信息所表明的那樣,你沒有捕獲異常,你沒有任何錯誤處理。通常,數據庫,網絡,文件IO以及其他外部事物都需要錯誤處理。您應該使用相同的方法打開連接並關閉它,最好在使用塊內部。最重要的是,你的代碼容易受到SQL注入的影響。你需要學習數據庫的第一件事就是使用參數,並且不要連接SQL中的字符串。

相關問題