2012-05-15 83 views
1

使用:ASP.NET 4,SQL 2008,C#將數據從SQL DB Table的Column(DataSet)導入到TextBox中?

我正在寫我們的項目團隊一個Web應用程序來跟蹤特別項目的用戶。他們要求的一件事是導出經常使用的快速數據列表。例如,我在這裏要做的是給團隊一個按鈕,該按鈕將填充保存在我們的SQL DB中的所有各種電子郵件地址的文本框。

我一直在試圖做的是將文本框綁定到數據庫中的特定列。我已經有了一個到數據庫的連接,並且我已經構建了一個DataSet來查詢該特定列,並且它正常工作。

我的問題是,我該如何告訴ASP.NET使用DataSet中的數據填充文本框?這是我與迄今使用的代碼:

protected void btnGetNPMEmailAddresses_Click(object sender, EventArgs e) 
    { 
    txbResults.Text = ""; 
    txbResults.DataBind(ObjectDataSource_Designee_EmailAddresses) // ??? My DataSet 
    } 

我肯定爬我的方式在C#的學習曲線。任何幫助將不勝感激!

感謝, 保羅·

+0

你爲什麼選擇文本框,而不是的GridView或列表框? –

+0

Sleiman - 項目團隊希望能夠做一個快速突出顯示和複製,所以我爲此使用了一個TextBox。我確實有一個GridView的工作,所以我很滿意查詢本身的作品。 –

回答

0

嘗試是這樣的:

protected void btnGetNPMEmailAddresses_Click(object sender, EventArgs e) 
{ 
    // TODO:: Populate ObjectDataSource_Designee 
    DataSet dataSet = GetDS(ObjectDataSource_Designee); 

    string emails = string.Empty; 
    for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) 
    { 
     emails = emails + dataSet.Tables[0].Rows[i]["EmailAddresses"].ToString() + Environment.NewLine; 
    } 
    txbResults.Text = emails; 
} 

private DataSet GetDS(ObjectDataSource ods) 
{ 
    var ds = new DataSet(); 
    var dv = (DataView)ods.Select(); 
    if (dv != null && dv.Count > 0) 
    { 
     var dt = dv.ToTable(); 
     ds.Tables.Add(dt); 
    } 
    return ds; 
} 
+0

Firoz - 我遇到了與Praveen的建議相同的錯誤:_'System.Web.UI.WebControls.ObjectDataSource'沒有包含'Tables'_的定義。看起來您的兩個建議都應該可以工作,但我的代碼不接受'表'。 –

+0

也許你可以嘗試將ObjectDataSource轉換爲DataSet並在上面的代碼中使用DataSet。網址:http://www.aspdotnet-suresh.com/2010/09/how-to-bind-dataset-with.html。 –

+0

保羅,我更新了我的答案。 –

0

假設你正在從數據庫中只返回一個排和col,你可以這樣做如下:

txbResults.Text = dataSet.Tables[0].Rows[0].Cols[0].ToString(); 

我的建議是使用「的ExecuteScalar()」方法僅返回一個值,而不是使用DataAdapter/Dataset。

希望這有助於!

+0

謝謝Praveen!當我嘗試使用這個時,我在'Tables'下得到一個紅色的波形曲線,並且出現以下錯誤: _'System.Web.UI.WebControls.ObjectDataSource'不包含'Tables'的定義,也沒有擴展方法'Tables'接受類型'System.Web.UI.WebControls.ObjectDataSource'的第一個參數可以找到(你是否缺少使用指令或程序集引用?)._ 我不相信我錯過了'使用'語句: using System.Data; using System.Data.SqlClient; 我從Firoz的建議中得到了同樣的錯誤,所以我也會把它發佈給他。謝謝! –

0

我想說

foreach(DataRow dr in DataTable) 
    { 
    Textbox.Text = Textbox.Text + dr; 
    } 

如果由於某種原因,你必須使用一個文本框

相關問題