收录日期:2020/02/20 19:31:15 时间:2016/07/15 11:38:29 标签:VB.NET
yifan__ 于 2009-08-10 21:21:02 编辑  准备在数据库Access中保存一些文字和图片,现在在读取图片的时候,卡着过不去了,使用编程环境是visual basic 2005

 Private Sub ShowImage(ByVal s As String)
        Dim cnn As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Application.StartupPath & "\test.mdb")
        Dim Olecmd As OleDbCommand = New OleDbCommand
        cnn.Open()

        Dim str As String = "SELECT test FROM test WHERE name='" & s & "'"
        Dim cmd As New OleDb.OleDbCommand(str, cnn)
        Dim MyDataReader As OleDbDataReader
        MyDataReader = Olecmd.ExecuteReader()      ‘此处出错ExecuteReader: Connection 属性尚未初始化。
        Try
            Do While MyDataReader.Read
                TextBox1.Text = (MyDataReader.Item(0))
                TextBox2.Text = (MyDataReader.Item(1))
                Dim b() As Byte
                'b = cmd.ExecuteScalar()
                b = (MyDataReader.Item(2))
                If (b.Length > 0) Then
                    Dim stream As New MemoryStream(b, True)
                    stream.Write(b, 0, b.Length)
                    DrawToScale1(New Bitmap(stream))
                    stream.Close()
                End If
                Dim b1() As Byte
                'b = cmd.ExecuteScalar() 
                b1 = (MyDataReader.Item(3))
                If (b.Length > 0) Then
                    Dim stream As New MemoryStream(b1, True)
                    stream.Write(b1, 0, b.Length)
                    DrawToScale2(New Bitmap(stream))
                    stream.Close()
                End If
            Loop
        Catch ex As Exception
            Label1.Text = " 所选记录包含空字符串"
            MyDataReader.Close()
            cnn.Close()
            cnn.Dispose()
        End Try
    End Sub
    Private Sub DrawToScale1(ByVal bmp As Image)
        PictureBox1.Image = New Bitmap(bmp)
    End Sub
    Private Sub DrawToScale2(ByVal bmp1 As Image)
        PictureBox2.Image = New Bitmap(bmp1)
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim i As String = InputBox("请输入名字:")
        ShowImage(i)
    End Sub
总是在此处出现错误:MyDataReader = Olecmd.ExecuteReader()  提示 ExecuteReader: Connection 属性尚未初始化。
请各位帮忙看一下
感谢
Dim Olecmd As OleDbCommand = New OleDbCommand(str, cnn) 
你定义了2个OleDbCommand。而使用的则没有设置Connection等属性
Dim cmd As New OleDb.OleDbCommand(str, cnn) 
Dim MyDataReader As OleDbDataReader 
MyDataReader = cmd.ExecuteReader()
Dim cnn As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Application.StartupPath & "\test.mdb")
Dim Olecmd As OleDbCommand = New OleDbCommand
cnn.Open()

Dim str As String = "SELECT test FROM test WHERE name='" & s & "'"
Dim cmd As New OleDb.OleDbCommand(str, cnn)
cmd.Connection = cnn '加上这句
Dim MyDataReader As OleDbDataReader
MyDataReader = Olecmd.ExecuteReader() 
Try
Do While MyDataReader.Read
TextBox1.Text = (MyDataReader.Item(0))
TextBox2.Text = (MyDataReader.Item(1))
Dim b() As Byte
'b = cmd.ExecuteScalar() 
b = (MyDataReader.Item(2))
If (b.Length > 0) Then
Dim stream As New MemoryStream(b, True)
stream.Write(b, 0, b.Length)
DrawToScale1(New Bitmap(stream))
stream.Close()
End If
Dim b1() As Byte
'b = cmd.ExecuteScalar() 
b1 = (MyDataReader.Item(3))
If (b.Length > 0) Then
Dim stream As New MemoryStream(b1, True)
stream.Write(b1, 0, b.Length)
DrawToScale2(New Bitmap(stream))
stream.Close()
End If
Loop
Catch ex As Exception
Label1.Text = " 所选记录包含空字符串"
MyDataReader.Close()
cnn.Close()
cnn.Dispose()
End Try
Dim Conn As New OleDb.OleDbConnection("") 
Conn.Open()
Dim Com As New OleDb.OleDbCommand(SqlStr, Conn) 
Com.ExecuteNonQuery() 
Conn.Close() 
引用 2 楼 net_lover 的回复:
你定义了2个OleDbCommand。而使用的则没有设置Connection等属性

To net_lover:感谢你的建议哦~~
Dim cnn As New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Application.StartupPath & "\test.mdb")
        cnn.Open()
        Dim str As String = "SELECT test FROM test WHERE name='" & s & "'"
        Dim Olecmd As OleDbCommand = New OleDbCommand(str, cnn)
        Olecmd.Connection = cnn
        Dim MyDataReader As OleDbDataReader
        MyDataReader = Olecmd.ExecuteReader()

     此处 MyDataReader = Olecmd.ExecuteReader()出现新的错误
 至少一个参数没有被指定值。
请帮忙在看看
引用 3 楼 wuyq11 的回复:
Dim cmd As New OleDb.OleDbCommand(str, cnn)
Dim MyDataReader As OleDbDataReader
MyDataReader = cmd.ExecuteReader()

TO wuyq11:感谢你的建议哦~~ 
MyDataReader = cmd.ExecuteReader()
出现新的问题至少一个参数没有被指定值。 请帮忙再看看
TO Snowdust:感谢
cmd.Connection = cnn 加上这句或没加都会出错误提示至少一个参数没有被指定值
呃,我只是来学习的。
Command和Connection都要。
查询值那里是要填写控件的值 -> name='" & s & "'"
此外如果不是用try的话,注意释放连接。
 Dim MyDataReader As  new OleDbDataReader 
        MyDataReader = Olecmd.ExecuteReader()      
还是没有解决....
Visual Basic] 
Public Sub ReadMyData(myConnString As String)
    Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
    Dim myConnection As New OleDbConnection(myConnString)
    Dim myCommand As New OleDbCommand(mySelectQuery, myConnection)
    myConnection.Open()
    Dim myReader As OleDbDataReader
    myReader = myCommand.ExecuteReader()
    ' Always call Read before accessing data.
    While myReader.Read()
        Console.WriteLine(myReader.GetInt32(0).ToString() + ", " _
           + myReader.GetString(1))
    End While
    ' always call Close when done reading.
    myReader.Close()
    ' Close the connection when done with it.
    myConnection.Close()
End Sub

[C#] 
public void ReadMyData(string myConnString) {
   string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
   OleDbConnection myConnection = new OleDbConnection(myConnString);
   OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
   myConnection.Open();
   OleDbDataReader myReader;
   myReader = myCommand.ExecuteReader();
   // Always call Read before accessing data.
   while (myReader.Read()) {
      Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
   }
   // always call Close when done reading.
   myReader.Close();
   // Close the connection when done with it.
   myConnection.Close();
}
这样的例子你再不清楚就没的教了。
问题已解决,只是设置了一个自动编号
谢谢各位的帮忙~~

Insert Object(txt 文件)到Access 2000后,如何用ASP.Net显示出来 如何开发输入法程序 请问 servlet 的过期问题 哪里有G.711,G.72x系列文档可以免费下载? 请高手们破解一个网页密码!!(在线等待)http://www.yscx.cn.st/ 想学面向对象分析与设计,应该看什么书? 我一直搞不懂坐标转换的问题,期待指点:-) 金庸笔下最有魅力男子(分别以男人和女人的角度看) 如何实现首先截获从internet上来的http数据流,进行处理以后,然后才转给浏览器进行解析? 请问在Web中如何打开可执行文件 如何实现首先截获从internet上来的http数据流,进行处理以后,然后才转给浏览器进行解析? 如何建立XML解决方案(B2C电子商务)? 怎么动态更改窗口ico图标 vb的模块能直接调用吗? 什么api可以获得系统目录,如\"C:\\windows\\system\"? 要在一个窗体上播放一个FLASH动画(如果我已经安装了shockwave Flash控件)应该怎么做,可以的话请写出源代码 请问哪里有PVCS下载? SQL中的时间比较 不会用,CELL? 我是新手,请教我怎样做一个登录验证的页面? 一个小问题!! 前五名每人50分!不过要回答我一个问题 SQL2000 怎么找不到graphics.h?? mili_0816(我爱洗澡@皮肤好好@冰清玉洁@让你 来领分 热爱灌水的:jutcalf(小毛驴) 来领分 急,请教各位师兄,Windows 2000 Server IIS 5.0的问题 谁看过<<开往春天的地铁>> 怎么弹不了菜单呀,进来看一看呀! jack999(网络病猫)进来谈谈