知道的话比较简单:怎么样执行了一个存储过程,然后返回数据。
我在一个存储过程里最后用用select 语句返回一个结果集,这个结果集是我从从一个临时表里取出来的:select * from #temtable
在一个窗体里我是这么写的:
try
{
。。。。。。
SQLDataAdapter.SelectCommand.CommandText = sProcName;
SQLDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
SQLDataAdapter.SelectCommand.UpdatedRowSource = UpdateRowSource.None;
//添加参数
for (int iCount = 0;iCount < pzParams.Length;iCount++)
{
SQLDataAdapter.SelectCommand.Parameters.Add(pzParams[iCount]);
}
//填充结果集
SqlDataReader sdr = SQLDataAdapter.SelectCommand.ExecuteReader();
DataTable dtAnswer = sdr.GetSchemaTable();
执行到这里dtAnswer = null,
换成:
//填充结果集
SqlDataReader sdr = SQLDataAdapter.SelectCommand.ExecuteNonQuery();
SQLDataAdapter.Fill(DataSet,"Record");
DataTable dtAnswer = DataSet.Tables["Record"];
照样:dtAnswer = null
而在QUERY里手工调用这个存储过程是有结果返回的
这个是怎么回事?