首先,如果有些代码不正确,请表示抱歉。我对在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)。你认为这会如何运作?此外,对于声明SQL的变量来说,sqlConn
是一个非常奇怪的名称——我希望它是连接。
看起来你试图混合太多不同的获取数据的方式:
- 直接从读者那里阅读
- 用数据适配器填充
DataSet
你不应该那样把它们混在一起。找出实际上想要做的事情,取出与其他风格相关的所有代码,然后确保你按照合理的顺序做每件事。
来自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语句。