使用VB .net从Sql Server db中检索记录

时间:2012-04-27 16:06:48

标签: .net sql-server vb.net ado.net

以下是我正在使用的内容:

Dim connstr = "data source=mydatasource;initial catalog=gcs_dw;persist security   info=True;user id=myuser;password=mypassword;Asynchronous Processing=True"
Dim sqlquery = "SELECT * FROM Customer WHERE CITY = 'Anytown'"
Dim connection As SqlConnection = New SqlConnection(connstr)
connection.Open()

Dim command As SqlCommand = connection.CreateCommand()
command.CommandText = sqlquery
Dim reader As SqlDataReader = command.ExecuteReader()
reader.Read()
Console.WriteLine(reader.ToString)
connection.Close()
Console.Read()

正如您所看到的,我正在尝试向命令行显示查询结果,目前显示的只是“System.Data.SqlClient.SqlDataReader”。我的SQL查询的结果在哪里,为什么我无法检索它们?

2 个答案:

答案 0 :(得分:5)

这是问题所在:

Console.WriteLine(reader.ToString)

您直接在阅读器上调用ToString,而不是向当前行询问特定值。类似的东西:

Console.WriteLine(reader.GetString(0))

应该没问题。

答案 1 :(得分:0)

Dim str As String

Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
                                                "uid=sa;pwd=;database=master")

str = "CREATE DATABASE MyDatabase ON PRIMARY " & _
      "(NAME = MyDatabase_Data, " & _
      " FILENAME = 'D:\MyFolder\MyDatabaseData.mdf', " & _
      " SIZE = 2MB, " & _
      " MAXSIZE = 10MB, " & _
      " FILEGROWTH = 10%) " & _
      " LOG ON " & _
      "(NAME = MyDatabase_Log, " & _
      " FILENAME = 'D:\MyFolder\MyDatabaseLog.ldf', " & _
      " SIZE = 1MB, " & _
      " MAXSIZE = 5MB, " & _
      " FILEGROWTH = 10%) "

Dim myCommand As SqlCommand = New SqlCommand(str, myConn)

Try
    myConn.Open()
    myCommand.ExecuteNonQuery()
    MessageBox.Show("Database is created successfully", _
                    "MyProgram", MessageBoxButtons.OK, _
                     MessageBoxIcon.Information)
   Catch ex As Exception
       MessageBox.Show(ex.ToString())
   Finally
       If (myConn.State = ConnectionState.Open) Then
           myConn.Close()
       End If
   End Try

End Sub