各位大大,我是新手先碰到查询和显示的问题,求教大大们。
想通过一个datagirdview控件显示要查询的类容,datagridview1控件的行是不固定的根据需求选择,选择好后再根据显示的第一列里的值去查询数据库里对应的数据。然后显示在另外一个datagridview2控件里面。比如说我现在库里tagname字段有7个数据,我只选择了三个数据出来需要查询如下图:
原表查询出来的结果为下图:
然后想在另一个datagridview里显示为下图:
在通过datagridview1里的第一列里的值去查询数据库时报错,代码如下:
private void button3_Click(object sender, EventArgs e)
{
string ids = string.Empty;
System.Collections.ArrayList s1 = new System.Collections.ArrayList();
for (int i = 0; i < dataGridView2.Rows.Count; i++)//循环dataGridView2的行
{
s1.Add(dataGridView2.Rows[i].Cells[0].Value.ToString());//将dataGridView2中的第一列存入s1中
}
foreach(string a in s1)
{
ids=ids+a+",";
}
ids = ids.Trim(',');
/* for (int j = 0; j < s1.Count; j++)
{
if (j != s1.Count - 1)
{
strlj += s1[j].ToString() + ",";
}
else
strlj += s1[j].ToString();
}
*/
string cmdstr = "select tagname,timestamp,value from ihRawData where tagname in " + ids + " and intervalmilliseconds=1h and timestamp between '2017/9/11 10:00:00' and '2017/9/11 14:00:00'";
OleDbConnection conn = ConectOleDb.CreateConnection();
OleDbDataAdapter adap = new OleDbDataAdapter(cmdstr, conn);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
//dataGridView1.Columns[1].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
}
错误信息图片为下图: