-4
try
        {
            SqlCommand cmd = new SqlCommand(SELECT [Name], COUNT([Name]) AS Count FROM [DelegationTracker] WHERE [Date] = @Date GROUP BY [Name], Connection);Conn);
             SqlCommand cmd = new SqlCommand(SELECT @User_Tested FROM WHMIS_User_Tests;, Connct);
            cmd.Parameters.Clear();
            cmd.Parameters.Add(@Name, SqlDbType.VarChar).Value = HttpContext.Current.Session[Name].ToString();
            cmd.Parameters.Add(@Date, SqlDbType.VarChar).Value = Date;MMDDYYYY
             cmd.Parameters.Add(@Grade, SqlDbType.VarChar).Value = null;
            Connection.Open();

            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    test = reader.GetValue(0).ToString();
                    test2 = reader.GetValue(1).ToString();
                }

            }

            SqlDataReader dr = cmd.ExecuteReader();
            SqlDataAdapter Adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            dt.Load(dr);
            Adapter.Fill(dt);
             DataSet ds = new DataSet();
            Adapter.Fill(ds);
            MainGridView.DataSource = dt;
            MainGridView.DataSource = ds;
            MainGridView.DataBind();
            Connection.Close();
            return true;
}

グリッドビューにはデータがなく、DataTable が SQL テーブルに 1 つのレコードを返しますが、(グリッドビュー内に) 表示されないため、データセットは何も返されません。

私が非常に多くのアダプターとデータセットとデータテーブルを持っている理由は、何が機能するかをテストしていたのですが、結果が得られなかったからです...

4

1 に答える 1

0

サンプルコードで何が起こっているのかよくわかりません。2 つの異なる方法を取り、それらを混ぜ合わせたように見えます。これは、提供した 2 つの SQL クエリのいずれかを使用して DataGrid をロードする簡単な方法です。

private void LoadDataGrid(DataGrid dataGrid, DateTime date, string connectionString) 
{
    using (var conn = new SqlConnection(connectionString)) 
    {
        using (SqlCommand cmd = conn.CreateCommand()) 
        {
            cmd.Parameters.Add(new SqlParameter {
                ParameterName = "@Date",
                SqlDbType = SqlDbType.DateTime,
                Value = date
            });
            cmd.CommandText = "SELECT [Name], " +
                              "       COUNT([Name]) AS Count " +
                              "FROM   [DelegationTracker] " +
                              "WHERE  [Date] = @Date " +
                              "GROUP  BY [Name]";

            conn.Open();
            try 
            {
                using (SqlDataReader reader = cmd.ExecuteReader()) 
                {
                    dataGrid.DataSource = reader;
                    dataGrid.DataBind();
                }
            }
            finally 
            {
                conn.Close();
            }
        }
    }
}
于 2013-05-08T13:56:33.180 に答える