2012-11-21 30 views
0

我動態地創建我需要
這裏控制異常「未設置爲一個對象的實例對象引用」是代碼這段代碼給了我,當我嘗試執行此SQL查詢

public void cmdButton1_OnClick(object sender, EventArgs e) 
{ 

     Label myLabel = new Label(); 
     myLabel.ID = "lblNameL" + i.ToString(); 
     myLabel.Text = "Трите имена на латиница "; 
     TextBox myTextBox1 = new TextBox(); 
     myTextBox1.ID = "txtNameL" + i.ToString(); 
     Page.FindControl("form1").Controls.Add(myLabel); 
     Page.FindControl("form1").Controls.Add(myTextBox1); 

     Label mylabel2 = new Label(); 
     mylabel2.ID = "lblNameK" + i.ToString(); 
     mylabel2.Text = "Трите имена на кирилица"; 
     TextBox myTextBox2 = new TextBox(); 
     myTextBox2.ID = "txtNameK" + i.ToString(); 
     Page.FindControl("form1").Controls.Add(mylabel2); 
     Page.FindControl("form1").Controls.Add(myTextBox2); 
} 

而且在這裏,我試圖執行SQL查詢,以便我可以插入什麼的書面文本框中txbNameK到表Tourist例外的是該行中cmd.Parameters.add

public void cmdInsert_OnClick(object sender, EventArgs e) 
{ 

     TextBox tx888 = (TextBox)FindControl("txtNameK" + i.ToString()); 
     TextBox tx99 = (TextBox)FindControl("txtNameL" + i.ToString()); 

     string insertSQL = "INSERT INTO Tourist (Name_kir, Name_lat) VALUES (@Name_kir, @Name_lat,)"; 

     string connectionString = "Data Source = localhost\\SQLExpress;Initial Catalog=Pubs;Integrated Security=SSPI"; 
     SqlConnection con = new SqlConnection(connectionString); 
     SqlCommand cmd = new SqlCommand(insertSQL, con); 
     cmd.Parameters.AddWithValue("@Name_kir",tx888); 
     cmd.Parameters.AddWithValue("@Name_lat", tx99); 

     int added = 0; 
     try 
     { 
      con.Open(); 
      added = cmd.ExecuteNonQuery(); 
      lblResult.Text = added.ToString() + "records added"; 

     } 
     catch (Exception ex) 
     { 
      lblResult.Text = ex.Message; 
     } 
     finally 
     { 
      con.Close(); 

     } 
    } 
} 
+0

你從來沒有檢查過你是否真的找到了文本框,我的錢是空的。此外,我假設你的意思是通過文本框的「文本」屬性,而不是整個事情? – sybkar

回答

1

兩件事情:

 
TextBox tx888 = (TextBox)FindControl("txtNameK" + i.ToString()); 
TextBox tx99 = (TextBox)FindControl("txtNameL" + i.ToString()); 
if(tx888 == null) 
    return; 
if(tx99 == null) 
    return; 

上面會檢查你的texbox爲空或不是 而另一件事是:

 
cmd.Parameters.AddWithValue("@Name_kir",tx888.Text); 
cmd.Parameters.AddWithValue("@Name_lat", tx99.Text); 
+0

嗨!謝謝您的回答!我已經嘗試過了 - 但仍然是例外! –

+0

現在一切正常!我在查詢時遇到了一些問題! –

0

對象引用異常總是發生每當空對象試圖訪問任何價值。 例如..

下面的代碼將正常工作。下面

Exception ex = new Exception() 
Textbox1.Text = ex.Message; 

代碼會拋出異常

Exception ex= null; //one and the same thing 

Textbox1.Text = ex.Message;  //Object reference not set....exception will be raised since ex is null 

這就是在你的代碼發生。嘗試放置一個斷點並對其進行調試。爲了最佳實踐,總是檢查Prashant建議的對象爲null。

相關問題