2016-09-25 96 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