【发布时间】:2013-08-01 09:38:54
【问题描述】:
我是 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() 处中断并出现无效数据源错误。
我一直在研究修复,似乎认为我需要在某处声明 cmd.CommandType.Text,但如果不完全破坏代码,就无法做到这一点。
感谢任何建议,如果是明显的建议,请道歉。 Google 在这方面不是我的朋友。
谢谢
【问题讨论】:
-
您将 SQL 放入“CommandType”。这应该是“命令”吗?
-
不,将
CommandType更改为Command无效,将其更改为CommandText然后在GridView1.DataSource = dr.Read()行出现此错误。 -
从内存中读取,但应该先检查。无论如何,我建议在您继续之前找到一个好的演练,因为您的代码中有一些奇怪之处(尝试分配给函数结果,将 .ToString() 放在字符串上,dr.Read()自己坐等)
标签: asp.net sql vb.net oracle visual-studio-2012