【发布时间】:2015-05-26 09:43:28
【问题描述】:
我已经(自己)学习了一点 VBA,现在我正在尝试在 VB.net 中传输一些代码
为了从 mySql 数据库中提取数据,我修改了以下代码:
Cn.Open("Driver={MySQL ODBC 5.3 Unicode Driver};Server=" & Server_Name & _
";Database=" & Database_Name & ";Uid=" & UserDB & ";Pwd=" & Password & ";")
SQLStr = "SELECT * FROM errlog WHERE Data > NOW()-100000"
rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
rs.Open(SQLStr, Cn, ADODB.CursorTypeEnum.adOpenStatic)
If rs.RecordCount > 0 Then mRS_Result = rs.GetRows()
If rs.State Then rs.Close()
所以,要循环提取记录的列中的所有数据,我通常:
NumCol = 0
For NumRow = 0 to mRS_Result.GetUpperBound(1)
myValue = mRS_Result(NumCol, NumRow)
Next NumRow
根据收到的建议,我将方法更改为 .net 方式,现在我正在使用此代码:
cnString = "datasource=" + Server_Name + ";username= " + UserDB + _
";password=" + Password + ";database=" + Database_Name + ""
sqlQRY = "SELECT * FROM errlog WHERE Data > NOW()-100000"
conn = New MySqlConnection(cnString)
Try
conn.Open()
da = New MySqlDataAdapter(sqlQRY, conn)
Dim cb As MySqlCommandBuilder = New MySqlCommandBuilder(da)
da.Fill(ds, "" + TextBox3.Text + "")
Catch ex As Common.DbException
MsgBox(ex.ToString)
Finally
conn.Close()
End Try
所以,要循环提取记录列中的所有数据,我使用以下代码:
NumCol = 0
For NumRow = 0 to ds.Tables(0).Rows.count -1
myValue = ds.Tables(0).Rows(NumRow ).item(NumCol).tostring
Next NumRow
我的问题是:
这是正确的 .net 方式吗?
".ToString" 有用吗?还有当数据是数字时?
【问题讨论】: