c#“对于不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成”错误的解决

在C#编程中遇到'对于不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成'的错误,通常认为是表缺少主键导致,但即使表有主键问题依旧存在。通过在代码中添加特定部分(涉及SqlCommandBuilder),成功解决了该问题。主要步骤包括:获取数据,创建新行,更新DataTable,刷新Schema,设置更新、插入和删除命令,最后更新数据集并接受更改。
摘要由CSDN通过智能技术生成

 昨天在做C#一个小程序的时候也遇到了“对于不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成”的错误提示。经过GOOGLE上的搜索,绝大多数的帖子都指出是由于表没有定义主键引起的,但是我的表的确是有主键定义了的,在代码中关联了主键也不行。最后终于解决。红色部分为添加部分(thisBuilder 声明:SqlCommandBuilder thisBuilder;)使用SqlCommand的也应该可以。

try
   {
                String device_next_id  = this.getnextid();
                DataTable dt = new DataTable();
                dt = mydataset.Tables["device"];
                DataRow newRow = dt.NewRow();
                newRow["设备编码"] = device_next_id.ToString();
                newRow["设备名称"] = this.textBox1.Text.ToString().Trim();
                newRow["设备类型"] = this.cmbType.Text.ToString().Trim();
       dt.Rows.Add(newRow);
                             
                thisBuilder.RefreshSchema();
                thisAdapter.UpdateCommand = thisBuilder.GetUpda

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值