Mysql 用数据库中的数据填充datatable
这就是我要做的。我从mysql数据库中得到了一些数据来填充datatable。参考示例项目,我一直在从现有表(名为examquestion)执行SELECT查询来提取这些细节。我的问题是这样的: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
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作为连接器和命令的语句。不管怎样,我已经解决了这个问题,不过还是要谢谢你指出这一点。谢谢你的建议