无法从asp.net中的数据库中检索值

时间:2012-11-13 06:29:13

标签: asp.net web-config dataset connection-string

我正在做第一个asp.net应用程序,现在需要将它连接到SQL(使用MS SQL 2008),但我无法从表中获取任何值。

我的web.config是:

<add name="MainConnectString" connectionString="Data Source=LUCKYY-PC;initial catalog=testDbName;uid=sa;Password=123456;Integrated Security=True" providerName="System.Data.SqlClient" />

在后端代码:

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MainConnectString"].ConnectionString))
            {
                string query = "select * from [testTableName]";
                SqlCommand cmd = new SqlCommand(query, conn);
                conn.Open();
                string numRows = cmd.ExecuteScalar().ToString();
                SqlDataAdapter da = new SqlDataAdapter(query, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                dataGrid.DataSource = ds;
                conn.Close();                
            }

dataGrid是我在此代码的ascx页面上定义的数据网格名称。

'ds'显示为0 计数,因此数据网格是空白的,我不知道我是否在代码或web.config中遗漏了任何内容...任何帮助都将是理解

3 个答案:

答案 0 :(得分:1)

dataGrid.DataBind() - 填充数据网格,谢谢Mohsen

答案 1 :(得分:0)

检查您的连接字符串。我认为您在编写数据源时遇到了错误,我认为您使用的是SQL Server 2005/2008/2008 R2,因此数据源必须设置为。(DOT) localhost 即可。尝试这个可能它可以帮助你.....

答案 2 :(得分:0)

您的代码中存在两个问题:

  1. 正如@ ethorn10所评论的那样,ExecuteScalar()正如您所使用的那样,它不会给您所期望的。将您的查询更改为:

    string query = "select count(*) from [testTableName]";
    
  2. 您忘记调用 datagrid DataBind()方法来显示从datasource中选择的记录。

    dataGrid.DataSource = ds;
    dataGrid.DataBind();
    
  3. 如果您是asp.net的新手,我强烈建议您学习并使用Entity framework,而不是像您那样使用旧的ADO.net代码。