mysqlDataReader转换为DataTable类型,mysql数据库的访问方法

 后记:简便的方法是

Dim data As DataTable = New DataTable data.Load(DataReader)

 

在使用Mysql的MysqlHelper的时候由于每次连接只能使用一个MySqlDataReader,所以在需要使用多个数据表的时候没有办法,所以本人自己写了个转换的函数

 

 

Sub test() Dim connstr As String connstr = "server=localhost;user=root;database=schoolnet;port=3306;password=zc_kf" Dim myconn As MySqlConnection = New MySqlConnection myconn.ConnectionString = connstr myconn.Open() Dim sql As String Dim out As StringBuilder = New StringBuilder sql = "select uid,username from b_member" Dim DataReader As MySqlDataReader DataReader = MySqlHelper.ExecuteReader(myconn, sql) Dim data As DataTable = DataReader2DataTalble(DataReader) DataReader.Close() myconn.Close() Dim i, j As Int16 For i = 0 To data.Rows.Count - 1 For j = 0 To data.Columns.Count - 1 Response.Write(data.Rows(i).Item(j)) Next Response.Write("<br>") Next i = i + 1 End Sub Function DataReader2DataTalble(ByVal DataReader As MySqlDataReader) As DataTable Dim data As DataTable = New DataTable Dim TableSchema As DataTable = DataReader.GetSchemaTable() Dim i, j As Int16 Dim FieldName As String For i = 0 To DataReader.FieldCount - 1 FieldName = DataReader.GetName(i) data.Columns.Add(FieldName, DataReader.GetFieldType(FieldName)) Next Dim NewRow As DataRow = Nothing Do While DataReader.Read NewRow = data.NewRow() For j = 0 To DataReader.FieldCount - 1 NewRow.Item(j) = DataReader(j) Next data.Rows.Add(NewRow) i = i + 1 Loop Return data End Function

 

你可能感兴趣的:(sql,数据库,mysql,server,String,function)