想将新的数据导入覆盖掉原来的数据,从第一行开始,所有列的数据都是新的,怎么写sql语句?求指点
我是用循环写的将数组的数据写入数据库表,能不能先在循环外面写删除语句,然后再在循环里面给表中写入新数据?否则的话就写入一遍删除一遍了,到了最后就剩下最后一行
代码如下,现在只是在原来表的数据后面插入数据,我想从表的第一行开始覆盖原来的 数据,怎么改?
for (int b = 0; b < dt.Rows.Count; b++) { string value1; value1 = bp1[b, 0]; string insert = "INSERT INTO a(id) values('" + value1 + "') SELECT * FROM a where id = '" + id + "'"; SqlConnection conn = new SqlConnection(cs); conn.Open(); SqlDataAdapter adapter = new SqlDataAdapter(insert, conn); DataSet ds = new DataSet(); adapter.Fill(ds, "a"); SqlCommand cmd = new SqlCommand("select * from a", conn); cmd.CommandType = CommandType.Text; adapter.SelectCommand = cmd; DataSet ds1 = new DataSet(); adapter.Fill(ds1, "a"); this.dataGridView1.DataSource = ds1; this.dataGridView1.DataMember = "a"; conn.Close(); }
直接把表的内容清空,重新插入不是更快
那我该怎么清空啊?思路我想过但是语句不知道怎么写
@巴索罗缪库玛: 在执行循环前把对应的表清空就行
@wvsy: ……语句呢?用哪个语句?delete?但是怎么执行啊?
@巴索罗缪库玛: 就是用string delstr="delete from a ";
SqlConnection conn = new SqlConnection(cs);
conn.Open();
SqlCommand cmd=new SqlCommand(delstr,conn);
cmd.ExecuteNonQuery();
conn.Close();
@wvsy: 解决啦,谢谢你!
@巴索罗缪库玛: 呵呵