c# excel导入数据库的数据更新问题
(1)将exel数据导入数据库sqlserver2008中,同时显示在DataGridView中,这一步没有问题(2)在DataGridView中修改数据,点击按钮,数据...
(1)将exel数据导入数据库sql server2008中,同时显示在DataGridView中,这一步没有问题
(2)在DataGridView中修改数据,点击按钮,数据库内中的数据也能随着更新,这一步有问题
点击按钮更新数据库的代码如下
private void button4_Click(object sender, EventArgs e)
{
//DataSet thisSet=new DataSet();
DataTable thisSet = new DataTable();
thisSet = (DataTable)dataGridView1.DataSource;
//thisSet.Tables.Add(dt.Copy());
SqlConnection thisConnection =new SqlConnection("Server=(local);Integrated Security=True;Database=ds");
SqlCommand thisCommand=new SqlCommand("Select id,name,sex,university from Table_3",thisConnection);
SqlDataAdapter thisAdapter=new SqlDataAdapter(thisCommand);
SqlCommandBuilder thisBuilder =new SqlCommandBuilder(thisAdapter);
thisConnection.Open();
// thisSet = dataGridView1.DataSource as DataSet;
//thisSet.Tables.Add((DataTable)dataGridView1.DataSource.);
thisAdapter.Fill(thisSet);
thisAdapter.Update(thisSet);
thisConnection.Close();
MessageBox.Show("Update Finished!");
}
错误提示为
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
查阅网上资料,说是数据库中的表未设置主键,但是id就是设置成主键的,不知道原因何在,忘各位高手不吝赐教,之处问题在哪,不甚感激!
被更新的表Table_3有主键id 展开
(2)在DataGridView中修改数据,点击按钮,数据库内中的数据也能随着更新,这一步有问题
点击按钮更新数据库的代码如下
private void button4_Click(object sender, EventArgs e)
{
//DataSet thisSet=new DataSet();
DataTable thisSet = new DataTable();
thisSet = (DataTable)dataGridView1.DataSource;
//thisSet.Tables.Add(dt.Copy());
SqlConnection thisConnection =new SqlConnection("Server=(local);Integrated Security=True;Database=ds");
SqlCommand thisCommand=new SqlCommand("Select id,name,sex,university from Table_3",thisConnection);
SqlDataAdapter thisAdapter=new SqlDataAdapter(thisCommand);
SqlCommandBuilder thisBuilder =new SqlCommandBuilder(thisAdapter);
thisConnection.Open();
// thisSet = dataGridView1.DataSource as DataSet;
//thisSet.Tables.Add((DataTable)dataGridView1.DataSource.);
thisAdapter.Fill(thisSet);
thisAdapter.Update(thisSet);
thisConnection.Close();
MessageBox.Show("Update Finished!");
}
错误提示为
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
查阅网上资料,说是数据库中的表未设置主键,但是id就是设置成主键的,不知道原因何在,忘各位高手不吝赐教,之处问题在哪,不甚感激!
被更新的表Table_3有主键id 展开
1个回答
展开全部
被更新的表必须有主键。
你上面Fill方法上面注释两行是什么时候注释的,Fill后马上就update也没什么意义。
更多追问追答
追问
我最后运行的代码是上面贴出来的,被注释起来的语句是之前试的时候写的;
既然fill后马上update无意义,那么应该怎么改呢,我也是参考网上的写的,求指教
追答
看我写的:
public partial class Form1 : Form
{
SqlDataAdapter da;
DataTable dt = new DataTable();
SqlCommandBuilder builder;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strConn = @"data source=.;initial catalog=test;integrated security=true;";
SqlConnection conn = new SqlConnection(strConn);
da = new SqlDataAdapter("select [ID],[C] from TCmdBuilder", conn);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Fill(dt);
dataGridView1.DataSource = dt;
}
private void button2_Click(object sender, EventArgs e)
{
da.Update(dt);
MessageBox.Show("OK");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |