2012-04-27 70 views
0

这里是我的工作:获取与VB .NET从sqlserver的数据库记录

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查询的结果在哪里,为什么我不能检索它们?

回答

5

这就是问题所在:

Console.WriteLine(reader.ToString) 

你直接对读者致电ToString,而不是要求它从当前行的特定值。例如:

Console.WriteLine(reader.GetString(0)) 

应该没问题。

+0

我知道的ToString在做什么它是假设的话,我根本不知道该用什么。 .GetString和.GetValue都很完美。谢谢! – Brian 2012-04-27 16:25:13

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 

末次