0

我正在做第一个 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 中的任何内容...任何帮助将不胜感激

4

3 回答 3

1

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

于 2012-11-13T06:57:37.417 回答
0

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

于 2012-11-13T09:15:57.647 回答
0

您的代码中有两个问题:

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

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

    dataGrid.DataSource = ds;
    dataGrid.DataBind();
    

如果您是 asp.net 的新手,我强烈建议您学习和使用Entity 框架,而不是像您一样使用旧的 ADO.net 代码。

于 2012-11-13T16:56:52.533 回答