2012-06-28 100 views
4

我已經創建了一個數據表併爲其添加了許多列。使用c將值分配給數據表中的特定列#

當數據表爲空時,我想爲特定列指定一個值。

就像在數據表中找到列名並賦值給它......這可能嗎?謝謝

 dt_FAQ.Columns.Add("FQ_Question_1", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Answer_1", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Question_2", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Answer_2", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Question_3", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Answer_3", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Question_4", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Answer_4", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Question_5", typeof(string)); 
     dt_FAQ.Columns.Add("FQ_Answer_5", typeof(string)); 

有一種情況,我只會得到必須分配給上面的數據表中的列「FQ_Answer_1」的值。在這種情況下,我想單獨賦值給該列,並將空字符串「」傳遞給其他列。可能嗎?

+0

你的意思是創建一個單行?張貼一些代碼 –

+0

@RajeshSubramanian用代碼更新了我的問題。請幫忙。謝謝 – Anuya

回答

0

如何

DataRow dr = mydatatable.NewRow(); 

dr[0] = 1;    // Assuming that first column is int type 
dr[0] = "someothervalue"; //Assuming that second column is string type 
.. 
.. 
.. 
.. // Repeat for other columns. 
mydatatable.AddRow(dr); 
7

在裏面的數據您現有的DataTable的情況下,必須通過數據錶行中的值進行迭代,並設置爲每列

foreach(DataRow dr in dt_FAQ.Rows) 
{ 
    dr["FQ_Answer_1"] = "your value"; 
    dr["FQ_Question_1"] = string.Empty; 
    dr["FQ_Question_2"] = string.Empty; 
    //.... for all the columns 
} 

要查找某個特定的列您可以做:

DataColumn dc = dt.Columns.Cast<DataColumn>().Where(r => r.ColumnName == "yourname").FirstOrDefault(); 
    //Or simpler 
    DataColumn dc2 = dt.Columns["yourcol"]; 

編輯:對於新的行:

DataRow dr = dt_FAQ.NewRow(); 
dr["FQ_Answer_1"] = "some value"; 
dt_FAQ.Rows.Add(dr); 

這將爲列FQ_Answer1創建一個「某些值」的新行,所有其他剩餘列將具有string.Empty作爲默認值。

你可以檢查其他列,如:

string test = dt_FAQ.Rows[0]["FQ_Question_1"].ToString(); 

這裏測試將包含一個空字符串。

+0

你如何給dc2賦值?說如果我已經創建了一個空的行到我的數據表。並且請注意,以前的數據表中沒有行。創建空行後,我想用值更新一列,並在創建的行中留下其餘列爲空。怎麼樣 ? – Anuya

+0

@Anuya,對於新排,我已經更新了我的答案 – Habib