我这有个datagridview 是通过.csv文件导入的 在界面上显示出来的 现在想把datagridview 上的数据更新到数据库中对应的数据库表中,要可以添加新的数据,也可以对已存在的数据进行修改,按钮点击后,进行更新导入操作。datagridview已转换成datatable了 然后我用adapter的方法update();结果只能添加 insert into的功能,更新update set没有,直接就报错是不能重复插入。代码如下,不知该怎么样写才可以update 。另外还有没有其他方法能实现datagridview数据跟新到数据库中?谢谢各位!!研究了一天没有结果 急死了 !就是只能insert无法修改 最好贴出代码 谢谢啦!!!~~
private void btn_imp_Click(object sender, EventArgs e)
{
DataBaseAccess dba = new DataBaseAccess();
String sql = "select * from " + cbb_table.Text;
DataTable dt1 = new DataTable();
dt1 = dba.GetDt(sql);
DataTable dt2 = new DataTable();
dt2 = (DataTable)this.dataGridView1.DataSource;
if (cbb_table.Text == "")
{
MessageBox.Show("请选择表");
}
else
{
string sqlConnectionString = "Data Source = 192.168.1.199;User ID=sa;PWD=1234;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
SqlCommand sqlCommand = new SqlCommand("select * from " + cbb_table.Text , sqlConnection);
SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCommand);
SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlAdap);//必须有
sqlConnection.Open();
sqlAdap.Fill(table);
//表中必须存在主键,否则无法更新
sqlAdap.Update(table);
sqlConnection.Close();
}
}
private void btn_imp_Click(object sender, EventArgs e)
{
DataBaseAccess dba = new DataBaseAccess();
String sql = "select * from " + cbb_table.Text;
DataTable dt1 = new DataTable();
dt1 = dba.GetDt(sql);
DataTable dt2 = new DataTable();
dt2 = (DataTable)this.dataGridView1.DataSource;
if (cbb_table.Text == "")
{
MessageBox.Show("请选择表");
}
else
{
string sqlConnectionString = "Data Source = 192.168.1.199;User ID=sa;PWD=1234;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
SqlCommand sqlCommand = new SqlCommand("select * from " + cbb_table.Text , sqlConnection);
SqlDataAdapter sqlAdap = new SqlDataAdapter(sqlCommand);
SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlAdap);//必须有
sqlConnection.Open();
sqlAdap.Fill(table);
//表中必须存在主键,否则无法更新
sqlAdap.Update(table);
sqlConnection.Close();
}
}
我给你个例子
public void SetProperty()
{
string sqlsc = "select COUNT(FileName) from T_CADProperty where FileName=\'" + FileName + "\'";
DataTable i = sqldb.ExecuteDataTable(sqlsc, null);
if (Convert.ToInt32(i.Rows[0][0].ToString()) == 0)
{
string str = "insert into T_CADProperty(FileName,ColorR,ColorG,ColorB,bRoot,Height,Width) values(\'" +
FileName + "\',\'" + ColorR + "\',\'" + ColorG + "\',\'" + ColorB +
"\',\'" + Height + "\',\'" + Width + "\')";
sqldb.ExecuteNonQuery(str, null);
}
else
{
string str = "update T_CADProperty set FileName=\'" + FileName + "\',ColorR=\'" + ColorR +
"\',ColorG=\'" + ColorG + "\',ColorB=\'" + ColorB + "\',Height=\'" +
Height + "\',Width=\'" + Width + "\' where FileName=\'" + FileName + "\' ";
sqldb.ExecuteNonQuery(str, null);
}
}