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にデータ アダプタを入力する

そのように混ぜてはいけません。実際にやりたいことを見つけ、他のスタイルに関連するすべてのコードを取り出してから、すべてを適切な順序で実行していることを確認してください。

于 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 に答える