2011-06-23 39 views
-3

我不知道如何綁定。請幫助我謝謝。將數據綁定到默認的文本框c#

private void LoadtxtYear() 
{ 
    DataSet ds = new DataSet(); 
    SqlConnection conn = new SqlConnection(strConn); 
    string sql = ""; 
    sql = "SELECT COCOPER FROM HR11COMP where cocode = '" + sComCode + "' order by COCPER"; 
    if (conn.State == ConnectionState.Closed) { conn.Open(); } 

    SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
    da.Fill(ds, "temp"); 

    txtYear.DataBinding.Add("Text", ds.Tables["temp"], "COCPER"); 
} 
+0

對我來說,你已經回答了你自己的問題。 –

+2

綁定是您對此代碼擔心最小的問題。首先,您應該考慮檢查「使用」聲明(與IDisposable相關)。如果要避免內存泄漏,則需要處理數據集,連接和適配器。你還期待只有1記錄?如果是這樣,你應該使用ExecuteScalar。也就是說,如果你打算在代碼中這樣做,你應該設置文本框的Text屬性。我會張貼一個更好的數據訪問樣本作爲答案。 –

+0

另外,使用這種類型的代碼,SQL注入非常有可能。 –

回答

1

我認爲你可以使用這樣的事情:

using(SqlConnection conn = new SqlConnection(strConn)) 
     { 
      conn.Open(); 
      using (SqlCommand cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = "SELECT COCOPER FROM HR11COMP where cocode = @sComCode order by COCPER"; 
       cmd.CommandType = CommandType.Text; 
       cmd.Parameters.Add(new SqlParameter("@sComCode", sComCode)); 

       object cocoper = cmd.ExecuteScalar(); 

       if (cocoper != null) 
        txtYear.DataBinding.Add("Text", cocoper.ToString(), "COCPER"); 
      } 
     }