2016-09-25 42 views
1

我在數據庫名稱用戶(用戶名,用戶ID,國家)中有一個表。我想在asp.net中檢索數據。但我有連接sql數據庫的問題。這是我的代碼使用vb將sql數據庫連接到asp.net

Public Sub connect() 
    Dim DatabaseName As String = "user" 
    Dim server As String = "loalhost" 
    Dim userName As String = "me" 
    Dim password As String = " " 
    If Not conn Is Nothing Then conn.Close() 
    conn.ConnectionString = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", server, userName, password, DatabaseName) 
End Sub 

我試試這個使用此代碼,但錯誤檢索數據

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Try 
     conn.Open() 
    Catch ex As Exception 
    End Try 
    Dim cmd As New SqlCommand(String.Format("SELECT username FROM user")) 
    cmd.ExecuteNonQuery() 
    conn.Close() 
End Sub 
+0

請與我們分享你獲得 –

+0

誤差存在誤差在cmd.ExecuteNonQuery() –

+1

1)您可以使用[SqlConnectionStringBuilder](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder(v = vs.110).aspx)。 2)它是「本地主機」,而不是「loalhost」。 –

回答

1

您需要使用的ExecuteReader來獲取所有數據......與ExecuteNonQuery()用於更新數據庫

  SqlCommand cmd1 = new SqlCommand(query1, con); 

      SqlDataReader reader = cmd1.ExecuteReader(); 
      //GridView2.DataSource = reader; 
      //GridView2.DataBind(); 
      while (reader.Read()) 
      { 
       String username =Convert.ToString(reader["username"]); 
       // ServicePointDetails t = new ServicePointDetails(); 
       // t.ServicePointID = Convert.ToString(reader["ServicePointID"]); 
       // t.ServicePointName = Convert.ToString(reader["ServicePointName"]); 
       // servicePointDetails_list.Add(t); 
      } 

更多信息ExecuteNonQuery

vb.net

Dim data As SqlDataReader 
Dim command As New SqlCommand 
command.CommandText = sqlquery 
command.Connection = conn 
data = cmd.ExecuteReader() 
While data.Read 
    If data.HasRows = True Then 
     Dim userName As String 
     userName = data.Item("username") 
     //Pupulate a list/do something else 
    End If 
End While 
1

我認爲你的表名是不正確的:數據庫是用戶,什麼是表名?在查詢

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Try 
     conn.Open() 
    Catch ex As Exception 
    End Try 
    Dim cmd As New SqlCommand(String.Format("SELECT username FROM yourtablename")) 
    cmd.ExecuteNonQuery() 
    conn.Close() 
End Sub 
+0

cmd.ExecuteNonQuery() –

0

提供正確的表名中去除的String.Format

Dim cmd As New SqlCommand("SELECT username FROM user") 

是表名USERS不是用戶?

爲什麼你使用String.Format作爲連接字符串?

Imports System.Data 
Imports System.Data.SqlClient 
Imports System.Configuration 
... 
Dim strConnection As String = ConfigurationManager.ConnectionStrings("Something").ConnectionString 
Dim con As SqlConnection = New SqlConnection(strConnection) 

Dim da As New SqlDataAdapter("SELECT [username] FROM YourTableNameHere", con) 
ds = New DataSet 
da.Fill(ds, "MyDataTableName") 
da.Dispose() 

數據集(DS)現在包含一個用戶名列表,如果在一個函數,返回結果:

Return ds 
+0

仍然存在錯誤Dim strConnection As String = ConfigurationManager.ConnectionStrings(「Something」)。ConnectionString。沒有聲明ConfigurationManager。但我已添加進口system.configuration。它仍然沒有工作 –

+0

ConfigurationManager不起作用,因爲我使用vb 2003 –

+0

什麼版本的框架?版本2使用略有不同,請參閱:https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings(v=vs.80).aspx – MyNameHere