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

接続文字列を確認してください。データソースの記述に誤りがあったと思います。SQLServer2005/2008/2008R2を使用していると思います。したがって、データソースを。(DOT)またはlocalhostに設定する必要があります。これを試してみてくださいそれはあなたを助けることができるかもしれません.....

于 2012-11-13T09:15:57.647 に答える
0

コードに 2 つの問題がありました。

  1. @ ethorn10 がコメントしたように、ExecuteScalar()使用しているため、期待どおりの結果が得られません。クエリを次のように変更します。

    string query = "select count(*) from [testTableName]";
    
  2. から選択したレコードを表示するためにdatagrid メソッドを呼び出すのを忘れました。DataBind()datasource

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

asp.netを初めて使用する場合は、古い ADO.net コードを使用する代わりに、エンティティ フレームワークを学習して使用することを強くお勧めします。

于 2012-11-13T16:56:52.533 に答える