使用数据库中的数据填充数据表

时间:2014-03-07 16:49:37

标签: mysql sql vb.net

所以这就是我要做的事情。我有一些数据来填充mysql数据库中的数据表。正如提到的示例项目,我一直从现有的表(名为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

那么,您如何将这些数据从数据库实际插入数据表?

跟进问题: 是否可以从数据表中创建数据集以及这些查询?

1 个答案:

答案 0 :(得分:1)

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

那说:

不要使用DataReader填充DataTable,而是使用DataAdapter。创建SqlCommand后 - 试试这个:

Dim da As New SqlDataAdapter(cmd)
da.Fill(examdt)

稍后如果需要 - 您可以创建一个DataSet并添加此表:

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

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