我正在做第一个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中遗漏了任何内容...任何帮助都将是理解
答案 0 :(得分:1)
dataGrid.DataBind() - 填充数据网格,谢谢Mohsen
答案 1 :(得分:0)
检查您的连接字符串。我认为您在编写数据源时遇到了错误,我认为您使用的是SQL Server 2005/2008/2008 R2,因此数据源必须设置为。(DOT)或 localhost 即可。尝试这个可能它可以帮助你.....
答案 2 :(得分:0)
您的代码中存在两个问题:
正如@ ethorn10所评论的那样,ExecuteScalar()
正如您所使用的那样,它不会给您所期望的。将您的查询更改为:
string query = "select count(*) from [testTableName]";
您忘记调用 datagrid DataBind()
方法来显示从datasource
中选择的记录。
dataGrid.DataSource = ds;
dataGrid.DataBind();
如果您是asp.net的新手,我强烈建议您学习并使用Entity framework,而不是像您那样使用旧的ADO.net代码。