未选择数据库mysql数据库连接到vs 2017社区版(vb.net)

brccelvz  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(287)

我试图搜索堆栈溢出,我发现了一个职位,但解决方案不适合我。
我使用的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()

提前感谢您的帮助

v64noz0r

v64noz0r1#

试试这个
dim connection作为新的mysqlconnection(“server=localhost;端口=3306;database=mydatabase;用户名=根;password=mypassword“)

相关问题