我试图搜索堆栈溢出,我发现了一个职位,但解决方案不适合我。
我使用的mysql数据库连接到visual studio 2017 professional(community edition)软件,项目是用vb.net编写的。我必须安装以下扩展:mysql for visualstudio 1.2.7和mysql connectornet 8.0.11。为了连接到mysql数据库,应该确保数据源是mysql数据库。我已经设法将数据从mysql数据库加载/查看到datagridview。源代码如下:-
Imports MySql.Data.MySqlClient
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports MySql.Data
Imports System.Windows.Forms
Imports System.Drawing
Imports System
Public Class Form1
Dim connection As New MySqlConnection("server=localhost; Port=3306; username=root; Password=mypassword")
Dim MysqlConn As MySqlConnection
Dim COMMAND As MySqlCommand
Private connStr As String
Private Sub SubmitButton_Click(sender As Object, e As EventArgs) Handles
SubmitButton.Click
Dim dtEmployee As New DataTable()
Dim command As New MySqlCommand("SELECT * FROM Employees WHERE EmployeeDate BETWEEN @d1 And @d2", connection)
command.Parameters.Add("@d1", MySqlDbType.Date).Value = DateTimePicker1.Value
command.Parameters.Add("@d2", MySqlDbType.Date).Value = DateTimePicker2.Value
Dim adapter As New MySqlDataAdapter(command)
adapter.Fill(dtEmployee)
DataGridView.DataSource = dtEmployee
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView.DataSource = GetEmployeeList()
End Sub
Private Function GetEmployeeList() As DataTable
Dim dtEmployee As New DataTable
Dim connString As String = ConfigurationManager.ConnectionStrings("dbx").ConnectionString
Using conn As New MySqlConnection(connString)
Using cmd As New MySqlCommand("SELECT * FROM Employees", conn)
conn.Open()
Dim reader As MySqlDataReader = cmd.ExecuteReader()
dtEmployee.Load(reader)
End Using
End Using
Return dtEmployee
End Function
End Class
app.config文件中的代码是:-
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<connectionStrings>
<add name="dbx" connectionString
="server=localhost;port=3306;database=mydatabase;user
id=root;password=mypassword" providerName="MySql.Data.MySqlClient"/>
我现在遇到了一个问题,因为我无法在datagridview中的特定数据范围之间过滤数据。当我在两个日期之间设置日期范围并单击“提交”按钮时,将在以下行中抛出“未选择数据库”错误消息:-
adapter.Fill(dtLab)
以及错误消息:-
Exception Thrown
MySql.Data.MySqlClient.MySqlException: 'No database selected'
MySql.Data.MySqlClient.MySqlException
HResult=0x80004005
Message=No database selected
Source=MySql.Data
StackTrace:
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64&
insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32&
affectedRows, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
提前感谢您的帮助
1条答案
按热度按时间v64noz0r1#
试试这个
dim connection作为新的mysqlconnection(“server=localhost;端口=3306;database=mydatabase;用户名=根;password=mypassword“)