SQL Serverに7つの結果セットを返すストアドプロシージャがあります。私はASP.NETからこのストアドプロシージャを呼び出して、ASP.NETページ上の7つのGridViewに結果を設定したいと思います。私はデータを取得するためにSqlDataReaderを使用していますが、GridViewを満たすためにC#コードに苦労しています。複数のGridViewコントロールを1つのストアドプロシージャから取り込む方法は?
私がデータを取得するために、DALのクラスを作成していると私はそこに、このメソッドを持って:
public SqlDataReader CheckDataIntegrity()
{
SqlCommand cmd = new SqlCommand("cc.DataCheck");
return MultipleResults(cmd);
}
ヘルパーメソッドMultipleResultsは次のようになります。私は呼んしようとしている
private SqlDataReader MultipleResults(SqlCommand cmd)
{
SqlConnection con = new SqlConnection(_connectionString);
cmd.Connection = con;
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
con.Close();
return dr;
}
私のページのコンポーネントは次のようなものです:
private void FillGridViews()
{
DBUtil DB = new DBUtil();
using (SqlDataReader dr = DB.CheckDataIntegrity())
{
if (dr.HasRows)
{
while (dr.Read())
{
GridView1.DataSource = dr;
GridView1.DataBind();
}
}
}
}
これは何も見つかりませんでした。
リソースを知っていますか、または共有する小さな例がありますか?
ありがとうございました。
multipleResultsメソッドでは、SqlConnectionをusingステートメントで囲む必要があります。 – Lareau
@Laraeu - これは何の違いもなく、私はまだ 'リーダーが閉じたときにHasRowsを呼び出す試みが無効です。 ' –
答えのコメントにあなたが持っていた問題を見ました。 MultiResultsのパラメータを変更して、sqlconnectionを受け入れるようにして、効率的に開閉を管理することを検討します。 – Lareau