2012-04-27 2 views
0

Вот что я работаю с:Получение записей из SQLServer дб с VB .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 и почему я не могу их получить?

ответ

5

Это проблема:

Console.WriteLine(reader.ToString) 

Вы звоните ToString непосредственно на читателя, а не просить его конкретное значение из текущей строки. Что-то вроде:

Console.WriteLine(reader.GetString(0)) 

должно быть хорошо.

+0

Я знал, что .ToString делает именно то, что это было предположить, я просто не знаю, что еще использовать. Оба .GetString и .GetValue отлично работали. Благодаря! – Brian

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