0

VB2008で標準クラスを作成できるかどうか疑問に思います

SQLをパラメータとして受け入れる関数GetRow(txtSQL)を作成しようとしています。この関数で、データベーステーブルの列をプロパティとして含むオブジェクトを返し、次のように使用できるようにしたかったのです。

 myObj=GetRow("select name, address from tbl_contacts where id=1")
 txtname.text=myObj.name
4

1 に答える 1

1

私の知る限り、実行時に生成されるプロパティを設計時に利用できるようにすることはできません。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
于 2012-07-24T07:07:31.083 に答える