簡體   English   中英

從字符串“ SELECT * FROM DB”到類型“ Integer”的轉換無效

[英]Conversion from string “SELECT * FROM DB” to type 'Integer' is not valid

我是vb的Visual Studio和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.ToStringcmd.CommandType() = sql.ToString ,這將導致代碼在GridView1.DataSource = dr.Read()處中斷,並帶有無效的DataSource錯誤。

我一直在研究一種修復程序,並且似乎認為我需要在某個地方聲明cmd.CommandType.Text ,但是如果不完全破壞代碼就不能這樣做。

感謝任何建議,如果很明顯的話,我們深表歉意。 Google並不是我的朋友。

謝謝

您正在將commandType設置為與查詢不相等的值。 根據您的情況,它應該是Text,或者只是忽略它,無論如何它將默認為text。

CommandType只能是StoredProcedure,TableDirect或Text(來自http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.commandtype.aspx

您應該改用CommandText屬性( http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlcommand.commandtext.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM