我正在运行一个运行两个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];
}
答案 0 :(得分:1)
试试这个。您还要创建DataSet ds
的新实例。因为RunOneStoredProc()
返回一个新实例,所以没有必要。
private void btnPush_Click(object sender, EventArgs e)
{
DataSet ds = RunOneStoredProc();
DataTable teachers = ds.Tables[0];
DataTable students = ds.Tables[1];
}