2

首先抱歉,如果某些代码不正确。我还是新手在 vb.net 上使用 sql

我有以下代码:

Imports MySql.Data.MySqlClient
Imports System.Data.SqlClient

Public Class Form1

    Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
        Dim objConn As MySqlConnection
        Dim objDataset As New DataSet
        Dim objDataAdapter As MySqlDataAdapter
        Dim myCommand As MySqlCommand

        Dim sqlConn As String

        objConn = New MySqlConnection("server=localhost;userid=root;database=attendance_system")
        myCommand = objConn.CreateCommand

        objConn.Open()
        Dim objReader As MySqlDataReader = myCommand.ExecuteReader

        sqlConn = "SELECT student_name FROM profile"
        objDataAdapter = New MySqlDataAdapter(sqlConn, objConn)
        objDataAdapter.Fill(objDataset, "profile")

        MsgBox("The Connection is Now 'OPEN'")

        objReader.Read()

        TextBox1.Text = objReader("student_name")

        objReader.Close()
        objConn.Close()
    End Sub
End Class

我在 phpmyadmin 中通过 vb.net 使用 MySQL 连接器,并设置了一个包含记录的数据库。连接字符串正在工作,但我的问题是当我尝试单击按钮以在文本框中加载数据时,我不断收到:

CommandText 属性未正确初始化。”

错误在这一行:

"Dim objReader As MySqlDataReader = myCommand.ExecuteReader"

我已经尝试了很多我在这个网站和其他网站上找到的修复程序。

4

2 回答 2

1

这就是问题:

Dim objReader As MySqlDataReader = myCommand.ExecuteReader

sqlConn = "SELECT student_name FROM profile"

在您尝试执行查询后,您被声明为 SQL (即使这样,您也没有将其设置为命令的 SQL)。你希望它如何工作?此外,对于声明SQLsqlConn的变量来说,这是一个非常奇怪的名称——我希望它是一个connection

看起来您正在尝试混合使用非常不同的数据获取方式:

  • 直接从读者那里阅读
  • DataSet用数据适配器填充 a

你不应该那样混合它们。找出你真正想做的事情,取出所有与其他风格相关的代码,然后确保你以合理的顺序做所有事情。

于 2012-09-07T06:01:16.373 回答
0

来自MySqlCommand 类和给出的示例

Public Sub ReadMyData(myConnString As String)
  Dim mySelectQuery As String = "SELECT * FROM Test.Dept"
  Dim myConnection As New MySqlConnection(myConnString)
  Dim myCommand As New MySqlCommand(mySelectQuery, myConnection)
  myConnection.Open()
  Dim myReader As MySqlDataReader = myCommand.ExecuteReader()
  Try
    While myReader.Read()
      Console.WriteLine(myReader.GetInt32(0).ToString() + ", " _
        + myReader.GetString(1))
    End While
  Finally
      ' always call Close when done reading.
      myReader.Close()
      ' always call Close when done with connection.
      myConnection.Close()
  End Try
End Sub

您的命令对象缺少 select 语句。

于 2012-09-07T06:02:31.970 回答