VB2008で標準クラスを作成できるかどうか疑問に思います
SQLをパラメータとして受け入れる関数GetRow(txtSQL)を作成しようとしています。この関数で、データベーステーブルの列をプロパティとして含むオブジェクトを返し、次のように使用できるようにしたかったのです。
myObj=GetRow("select name, address from tbl_contacts where id=1")
txtname.text=myObj.name
VB2008で標準クラスを作成できるかどうか疑問に思います
SQLをパラメータとして受け入れる関数GetRow(txtSQL)を作成しようとしています。この関数で、データベーステーブルの列をプロパティとして含むオブジェクトを返し、次のように使用できるようにしたかったのです。
myObj=GetRow("select name, address from tbl_contacts where id=1")
txtname.text=myObj.name
私の知る限り、実行時に生成されるプロパティを設計時に利用できるようにすることはできません。SQLは単なる文字列であるため、コンパイラは.Nameがプロパティである必要があることを認識しません。
私があなたに提供できる最高のものは次のとおりです。
Function GetRow(cnn As SqlConnection, sql As String) As DataRow
Using dtb As New DataTable
Using dad As New SqlDataAdapter(sql, cnn)
dad.Fill(dtb)
End Using
If dtb.Rows.Count >= 1 Then
Return dtb.Rows(0)
Else
Return Nothing
End If
End Using
End Function
Sub test()
Using cnn As New SqlConnection("Data Source=mycomputername;Timeout=10;User ID=myusername;Password=mypassword;")
cnn.Open()
Dim strSql As String = "select name, address from tbl_contacts where id=1"
Dim drw As DataRow = GetRow(cnn, strSql)
txtName.text = CStr(drw("name"))
cnn.Close
End Using
End Sub