DataTable遍历取值,只能取到一列的值
table 大致如下:
item value quality timestamp
Cha.....Tag_1 a b c
Cha.....Tag_2 d e f
Cha.....Tag_3 1 2 3
主要代码:
private void SetGridDataSource()
{
DataTable dtList = new DataTable();
dtList.Columns.Add("Item");
dtList.Columns.Add("Value");
dtList.Columns.Add("Quality");
dtList.Columns.Add("TimeStamp");
DataRow dr1 = dtList.NewRow();
dr1["item"] = "Channel_2.Device_3.Tag_1";
dtList.Rows.Add(dr1);
DataRow dr2 = dtList.NewRow();
dr2["item"] = "Channel_2.Device_3.Tag_2";
dtList.Rows.Add(dr2);
DataRow dr3 = dtList.NewRow();
dr3["item"] = "Channel_2.Device_3.Tag_3";
dtList.Rows.Add(dr3);
//DataRow dr4 = dtList.NewRow();
//dr3["item"] = "Channel_2.Device_3.Tag_4";
//dtList.Rows.Add(dr4);
Insert(dtList);
SetGridDataSource(dtList);
}
//插入数据库
private void Insert(DataTable tb)
{
// 从DataTable循环取值
//for (int i = 0; i < tb.Rows.Count;i++ )
//{
// // for (int j = 0; j < grdList.Rows.Count;j++ )
// string item = tb.Rows[i][0].ToString();
// string value = tb.Rows[i][1].ToString();
// string quality = tb.Rows[i][2].ToString();
// string time = tb.Rows[i][3].ToString();
// dtList.Rows.Add();
foreach (DataRow dr in tb.Rows)
{
string item = dr[0].ToString();
string value = dr[1].ToString();
string quality = dr[2].ToString();
string time = dr[3].ToString();
string sql = string.Format("insert into ItemProperty(Item,ItemValue,Quality,TimeStamp) values('{0}','{1}','{2}','{3}')", item, value, quality, time);
UpdateData(sql);
}
}