C# datagridview 中修改数据保存到数据库出问题

namespacetestdatagridview{publicpartialclassForm1:Form{publicForm1(){InitializeCompon... namespace testdatagridview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

SqlDataAdapter adapter = null;
DataSet ds = new DataSet();

private void button1_Click(object sender, EventArgs e)
{
try
{

SqlCommandBuilder sb = new SqlCommandBuilder(adapter);
adapter.Update(ds.Tables[0]);
//adapter.Update(ds);
}
catch (Exception ex){ MessageBox.Show(ex.ToString()); }
}

private void Form1_Load(object sender, EventArgs e)
{
string commandText = "select * from productinfo";
string connectionString = "server=localhost;database=master;uid=sa;pwd=sa";
SqlConnection mySqlConnection = new SqlConnection(connectionString);
//mySqlConnection.Open();
adapter = new SqlDataAdapter(commandText, connectionString);
adapter.Fill(ds, "productinfo");
this.dataGridView1.DataSource = ds.Tables[0];
}
}
}
以上是我的代码,可以运行,且能插入新的一行,并保存。但在原来的项中修改却出错。
展开
 我来答
手机用户82519
2011-07-21 · TA获得超过939个赞
知道小有建树答主
回答量:872
采纳率:0%
帮助的人:597万
展开全部
mysql = new SqlDataAdapter("Select * from xs", conn);
mysql.Fill(myTable);
dataGrid1.DataSource = myTable;
cmOrders = (CurrencyManager)BindingContext[myTable];
cb = new SqlCommandBuilder(mysql);//有这条才能使用更新命令.表中必须有主键..

更新的代码
cmOrders.EndCurrentEdit();
if (myTable.GetChanges() != null)
{
try
{
mysql.Update(myTable);
MessageBox.Show("数据保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception express)
{
MessageBox.Show(express.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
myTable.RejectChanges();
}
}
注:声明~~~~`````
private static DataTable myTable;
private CurrencyManager cmOrders;
SqlDataAdapter mysql;
private SqlCommandBuilder cb;
卡诺天6215
2011-07-20 · TA获得超过6.7万个赞
知道大有可为答主
回答量:4.5万
采纳率:0%
帮助的人:5951万
展开全部
和我遇到的问题一样- -
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
我的出的是这个错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liquan180
2011-07-20 · 超过48用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:130万
展开全部
能给出错误的截图吗?
更多追问追答
追问
对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。
我的出的是这个错误
追答
SqlDataAdapter adapter =new SqlDataAdapter(sql,connectionstr) 加上2个参数 sql语句和数据库链接语句 在修改的地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超市货架网
2011-07-20 · TA获得超过148个赞
知道答主
回答量:308
采纳率:0%
帮助的人:141万
展开全部
修改是需要设置主键的吧,我一般用工具类,好长时间没涉及到下面的数据访问了,记不清了
追问
把表中某个字段设为主键,我也试过。还是同样的问题
追答
这个还是查一下书吧,具体的记不清了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rxyhj
2011-07-20
知道答主
回答量:51
采纳率:0%
帮助的人:18.7万
展开全部
修改时出现什么错误提示呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式