有关于多步 OLE DB 操作产生错误的问题

bjliren 2006-10-20 11:09:45
我用本地的VS.NET,连接远端的SERVER中SQLSERVER2005的一个TEST的表
测试连接代码如下:
Dim conn As New OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand
conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;Data Source=SERVER\SQLSERVER;Initial Catalog=test;Integrated Security=True"
cmd.CommandText = "select * from patient_Inf"
conn.Open()
If cmd.ExecuteNonQuery <> 0 Then
Label2.Text = "连接成功"
Else
Label2.Text = "没有连接上"
End If

conn.Close()

这仅仅是测试有没有连接,能否取出数据。现在无论是这个,还是另外的涉及到查询连接服务器的代码都会出一个错:
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

究竟是怎么了?感觉可能是个小问题,逻辑上应该没有错的。
怎么解决?怎么解决??
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
dim dr as datareader=cmd.ExecuteReader
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
cmd.ExecuteNonQuery返回值小于0表示更新操作失败
返回值为0表示正常执行了更新但是没有更新到数据
返回值大于0表示正常执行了更新并且更新到了数据
所以你给他一个select的语句,让他去查询,应该会出错
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
To ls
cmd.ExecuteNonQuery本来返回的就是一个整型(),还要这么拐弯抹角干什么.
问题可能出现在sql上,
cmd.ExecuteNonQuery执行的应该是update/insert这些更新执行语句而不是查询语句
bjliren 2006-10-20
  • 打赏
  • 举报
回复
加了一个标志位判断?其实和我判断返回了多少行是一个意思。我用你的代码,错误依旧……
刚才看了看,似乎涉及到socket的问题。我茫然了~~
xray2005 2006-10-20
  • 打赏
  • 举报
回复
不知道这样行不行呢 ?

Dim int_flag AS Integer=0
Dim conn As New OleDb.OleDbConnection
Dim cmd As New OleDb.OleDbCommand
conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;Data Source=SERVER\SQLSERVER;Initial Catalog=test;Integrated Security=True"
cmd.CommandText = "select * from patient_Inf"
conn.Open()
cmd.Connection=conn;
int_flag=CInt(cmd.ExecuteNonQuery)
conn.Close()

If int_flag <> 0 Then
Label2.Text = "连接成功"
Else
Label2.Text = "没有连接上"
End If


bjliren 2006-10-20
  • 打赏
  • 举报
回复
加上cmd.Connection = conn
还是那个错误,似乎错误原因不在于此
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
晕,没看清,应该是cmd.connection=conn;这句少了
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
OleDbConnection myConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\\First.mdb;");
myConn.Open();
string sql="UPdate Employees set FirstName=@FirstName,LastName=@LastName where ID=@ID";
OleDbCommand ocmd=new OleDbCommand(sql,myConn);
ocmd.Parameters.Add("FirstName","Huang");
ocmd.Parameters.Add("LastName","Shang");
ocmd.Parameters.Add("ID","1");
ocmd.ExecuteNonQuery();
dlzhangln 2006-10-20
  • 打赏
  • 举报
回复
连接字符串错误!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧