Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net ExecuteReader CommandText属性尚未正确初始化_Vb.net_Executereader - Fatal编程技术网

Vb.net ExecuteReader CommandText属性尚未正确初始化

Vb.net ExecuteReader CommandText属性尚未正确初始化,vb.net,executereader,Vb.net,Executereader,首先,如果某些代码不正确,请道歉。我还不熟悉在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

首先,如果某些代码不正确,请道歉。我还不熟悉在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"
我在这个网站和其他网站上找到了很多修复方法。这就是问题所在:

Dim objReader As MySqlDataReader = myCommand.ExecuteReader

sqlConn = "SELECT student_name FROM profile"
您在尝试执行查询后声明了SQL(即使这样,您也没有将其设置为命令的SQL)。您希望它如何工作?此外,
sqlConn
对于声明SQL的变量来说是一个非常奇怪的名称-我希望它是一个连接

看起来您试图混合太多不同的数据获取方式:

  • 直接从读者那里阅读
  • 用数据适配器填充数据集
你不应该这样把它们混在一起。找出你真正想做的事情,取出所有与其他风格相关的代码,然后确保你做的每件事都是合理的顺序。

来自和下面给出的示例

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语句。

使用<代码>使用<代码>语句会更简单-我想知道该示例是否是从VB.NET的第一个版本编写的,而VB.NET没有使用<代码>使用<代码>…这似乎很公平,可以快速查看X-)谢谢您直截了当的回答。我对这个stuf非常陌生f和我确实需要一只手。我会再试一次,看看根据你的建议我能想出什么。谢谢。如果你不同时使用MS SQL Server,最好删除行
Imports System.Data.SqlClient
。否则你可能会在某处得到错误的东西(意外的名称解析)。