C# 为什么我在这里得到“没有数据时无效的读取尝试”?
我的存储过程是简单的一行程序C# 为什么我在这里得到“没有数据时无效的读取尝试”?,c#,sql-server,tsql,C#,Sql Server,Tsql,我的存储过程是简单的一行程序 CREATE PROCEDURE CheckIfFinished @pid UNIQUEIDENTIFIER AS BEGIN SELECT finished FROM Partners WHERE id = @pid END 我用我的C代码调用它,就像 using (SqlCommand cmd = new SqlCommand("CheckIfFinished", this._Conn)) {
CREATE PROCEDURE CheckIfFinished
@pid UNIQUEIDENTIFIER
AS
BEGIN
SELECT finished
FROM Partners
WHERE id = @pid
END
我用我的C代码调用它,就像
using (SqlCommand cmd = new SqlCommand("CheckIfFinished", this._Conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@pid", pid);
this._Conn.Open();
using (SqlDataReader dataReader = cmd.ExecuteReader())
{
finished = dataReader.GetByte(0) == 1 ? true : false;
}
this._Conn.Close();
}
Partners表中完成的列的类型为TINYINT NOT NULL默认值为0
错误的堆栈跟踪为
[InvalidOperationException:没有数据时读取的尝试无效
出席。]
System.Data.SqlClient.SqlDataReader.CheckDataIsReadyInt32
columnIndex,布尔allowPartiallyReadColumn,布尔permitAsync,
字符串methodName+6531242
System.Data.SqlClient.SqlDataReader.TryReadColumnInt32 i,布尔值
setTimeout,布尔allowPartiallyReadColumn+81
System.Data.SqlClient.SqlDataReader.ReadColumnInt32 i,布尔值
setTimeout,布尔allowPartiallyReadColumn+25
System.Data.SqlClient.SqlDataReader.GetByteInt32 i+27
Survey.Models.SurveyDbModel.CheckIfFinishedGuid pid+230
我哪里出错了?您忘记了dataReader.Read
除非您不在数据读取器上执行读取,否则数据不可用