更新数据库时出错 [英] Error in updating database

查看:125
本文介绍了更新数据库时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在更新数据库时遇到以下错误

i am getting following  error while updating the database

"对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成"。

"Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information".

MY PROGRAM

MY PROGRAM







< tr>








































1 Imports System.Data.OleDb
2
3 Module Module1
4 Sub Main()
5 Dim con As New OleDbConnection(" 提供商 = OraOleDb < font style ="font-size:11px">。Oracle;数据 = parkwayd ;用户 id = reports ; 密码 = reports ")
6 Dim cmdstr As String = " select dept_no,sal,f_name from emp"
7 Dim da As New OleDbDataAdapter(cmdstr,con)
8 Dim ds As New DataSet
9 da.Fill( ds," authors")
10 Dim cmdBuilder As New OleDbCommandBuilder(da)
11 ds.Tables(" authors")。行(0) (" sal")= 10
12 da.Update(ds," authors")
13 End Sub
14 结束模块
1 Imports System.Data.OleDb  
2  
3 Module Module1  
4     Sub Main()  
5         Dim con As New OleDbConnection("Provider=OraOleDb.Oracle;Data Source=parkwayd;user id=reports;password=reports")  
6         Dim cmdstr As String = "select dept_no,sal,f_name from emp" 
7         Dim da As New OleDbDataAdapter(cmdstr, con)  
8         Dim ds As New DataSet  
9         da.Fill(ds, "authors")  
10         Dim cmdBuilder As New OleDbCommandBuilder(da)  
11         ds.Tables("authors").Rows(0)("sal") = 10  
12         da.Update(ds, "authors")  
13         End Sub  
14 End Module 

推荐答案

那表示提供程序没有足够的SELECT SQL语句信息,该语句用于加载DataTable以构造适当的INSERT,UPDATE或DELETE语句。最有可能的是,您的表在表中缺少主键。基于我所看到的,如果您需要做的唯一事情是更新特定数据,那么我建议直接使用UPDATE SQL语句而不用数据加载DataTable。它会更快。
That means provider does not have enough information from SELECT SQL statement that was used to load DataTable to construct appropriate INSERT, UPDATE or DELETE statements. Most likely, your table missing primary key in your table. Based on what I see if the only thing you need to do is to update specific data, then I would suggest ti use UPDATE SQL statement directly without loading DataTable with the data. It will work faster.


这篇关于更新数据库时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆