-1

私は Visual Studio と vb を使用した asp.net を初めて使用し、以下のコードをクラックして vb で単純な SQL クエリを実行し、html 形式で表示しようとしています。

コード:

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes 
Imports System.Data.Odbc
Imports Microsoft.SqlServer.Server
Imports System.Data.OleDb
Imports System.Data.OleDb.OleDbCommand
Imports Oracle.DataAccess.Client

Public Class WebForm1
Inherits System.Web.UI.Page

Private oradb = "Data Source=(DESCRIPTION=" _
   + "(ADDRESS=(PROTOCOL=TCP)(HOST=###.###.###.###)(PORT=####))" _
   + "(CONNECT_DATA=(SERVICE_NAME=#)));" _
   + "User Id=user;Password=pwrd;"

Dim conn As New OracleConnection(oradb.ToString)
Dim sql As String = "SELECT * FROM Db WHERE CLMN = 'Y'"
Dim cmd As New OracleCommand(sql, conn)
Dim dr As OracleDataReader

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles      Me.Load
    MySub()

End Sub

Sub MySub()

    conn.Open()
    cmd.CommandType() = sql
    dr = cmd.ExecuteReader()
    dr.Read()

    GridView1.DataSource = dr.Read()

    conn.Close()
    conn.Dispose()


End Sub
End Class

コードは、cmd.CommandType() = sql

その後ろに配置する.ToStringと、つまりcmd.CommandType() = sql.ToString、コードがGridView1.DataSource = dr.Read()無効な DataSource エラーで壊れます。

私は修正を調査しており、cmd.CommandType.Textどこかで宣言する必要があると考えているようですが、コードを完全に破損することなく宣言することはできません。

アドバイスをいただければ幸いです。明らかな場合は申し訳ありません。グーグルはこれに関して私の友人ではありませんでした。

ありがとう

4

1 に答える 1

3

commandType をクエリと同じに設定していますが、これは正しくありません。あなたの場合は Text にするか、省略してもデフォルトで text になります。

CommandType は StoredProcedure、TableDirect、または Text のみにすることができます ( http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtype.aspxから)

代わりに CommandText プロパティ ( http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtext.aspx )を使用する必要があります。

于 2013-08-01T09:52:19.923 に答える