Mysql 用数据库中的数据填充datatable

Mysql 用数据库中的数据填充datatable,mysql,sql,vb.net,Mysql,Sql,Vb.net,这就是我要做的。我从mysql数据库中得到了一些数据来填充datatable。参考示例项目,我一直在从现有表(名为examquestion)执行SELECT查询来提取这些细节。我的问题是这样的: SELECT * FROM entrancequestion WHERE Subject='Abstract Reasoning' ORDER BY RAND() LIMIT 10) UNION (SELECT * FROM entrancequestion WHERE Subject='Engli

这就是我要做的。我从mysql数据库中得到了一些数据来填充datatable。参考示例项目,我一直在从现有表(名为examquestion)执行SELECT查询来提取这些细节。我的问题是这样的:

SELECT * FROM entrancequestion
WHERE Subject='Abstract Reasoning'
ORDER BY RAND()
LIMIT 10)

UNION

(SELECT * FROM entrancequestion
WHERE Subject='English'
ORDER BY RAND()
LIMIT 30)

UNION

(SELECT * FROM entrancequestion
WHERE Subject='Mathematics'
ORDER BY RAND()
LIMIT 30)

UNION

(SELECT * FROM entrancequestion
WHERE Subject='Science'
ORDER BY RAND()
LIMIT 30 )
因此,所有的数据表总共应该填充100行

我的问题实际上是将这些数据插入到数据表中

首先,我从数据库中读取数据

dim myqry as string    
'where myqry as the codes above
dim examdt as new datatable
Dim conn As New SqlClient.SqlConnection("server=localhost;User Id=root;database=jnhsdb")

    Try
        conn.Open()

        Dim cmd As SqlCommand = New SqlCommand(myqry, conn)
        'create data reader
        Dim rdr As SqlDataReader = cmd.ExecuteReader

        'loop through result set
        rdr.Read()

        'now im lost on this part.
        'i want to insert the data into a data table. i got some code in mind but i think im doing it wrong.




        conn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
那么,如何将这些数据从数据库插入到数据表中呢

跟进问题:
是否可以从datatable和这些查询一起创建数据集?

首先,你自相矛盾。您的查询来自MySQL,而您的代码是针对SQL Server的。你必须决定你想用什么。如果它确实是MySQL,那么您需要安装MySQL.NET连接器。下面的代码几乎相同,只是您将使用
MySQL*
类(例如
MySqlDataAdapter
而不是
SqlDataAdapter
)来代替
SQL*

也就是说:

不要使用DataReader填充DataTable,而是使用DataAdapter。创建SqlCommand后,请尝试以下操作:

Dim da As New SqlDataAdapter(cmd)
da.Fill(examdt)
如果需要,稍后-您可以创建数据集并添加此表:

Dim ds As New DataSet
ds.Tables.Add(examdt)

但还有其他方法。例如,上面SqlDataAdapter的
.fill()
方法能够直接填充DataSet而不是DataTable(它将自动创建一个表)

谢谢Yuriy。我对使用datareader和dataadapter感到困惑。是的,我忽略了使用sql而不是mysql作为连接器和命令的语句。不管怎样,我已经解决了这个问题,不过还是要谢谢你指出这一点。谢谢你的建议