1
私は、2つのselectステートメントを実行するparamterized SQLストアドプロシージャを実行しています。簡単な処理のために返された結果にDataSet()
を割り当てたいと思います。しかし、私の構文で、私は暗黙的に型「たSystem.Data.DataTable」を変換できませんデータセットテーブルの反復
誰かがどのように何をすべきか私を見ることができますのエラーが出る「でSystem.Data.DataSet」
私はここにいる? - それを参照するのではなく、ds.Tables[0];
私は意味のある名前を関連づけたいと思います。
public DataSet RunOneStoredProc()
{
DataSet dataset = new DataSet();
using (var conn = new SqlConnection(SQLCon))
{
var cmd = new SqlCommand("GetTeachersStudents", conn);
cmd.Parameters.Add("@yearstart", SqlDbType.Date, 100);
cmd.Parameters.Add("@yearend", SqlDbType.Date, 100);
cmd.Parameters["@yearstart"].Value = dtpStartDate.Value.ToString("MM/dd/yyyy");
cmd.Parameters["@yearend"].Value = dtpEndDate.Value.ToString("MM/dd/yyyy");
cmd.CommandType = CommandType.StoredProcedure;
var ds = new DataSet();
using (var da = new SqlDataAdapter(cmd))
da.Fill(ds);
return dataset;
}
}
private void btnPush_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataSet teachers = new DataSet();
DataSet students = new DataSet();
ds = RunOneStoredProc();
teachers = ds.Tables[0];
students = ds.Tables[1];
}
インデックスを使用してデータセットの異なるテーブルにアクセスしたくない場合は、名前を使用できます。 'DataTable teachers = ds.Tables [" teachers "];' –
私はdsの新しいインスタンスを作成しています。 RunOneStoredProc()からDataSet ds declerationを削除することを意味しますか? –
'RunOneStoredProc()'はすでに新しいインスタンスを返すので、DataSet 'DataSet ds = new DataSet();'の別のインスタンスを作成する必要はありません。 –