我的存储过程是简单的一行为什么我会在这里看到“无数据时无法读取”?
CREATE PROCEDURE CheckIfFinished
@pid UNIQUEIDENTIFIER
AS
BEGIN
SELECT finished
FROM Partners
WHERE id = @pid
END
,我从我的C#代码在Partners
表来调用它像
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();
}
列finished
的类型是TINYINT NOT NULL DEFAULT 0
错误的堆栈跟踪是
[InvalidOperationException异常:无效尝试时没有数据是 本读取]
System.Data.SqlClient.SqlDataReader.CheckDataIsReady(的Int32 columnIndex,布尔allowPartiallyReadColumn,布尔permitAsync, 字符串方法名)6531242
System.Data。 SqlClient.SqlDataReader.TryReadColumn(的Int32 I,布尔 的setTimeout,布尔allowPartiallyReadColumn)81
System.Data.SqlClient.SqlDataReader.ReadColumn(的Int32 I,布尔 的setTimeout,布尔allowPartiallyReadColumn)25
System.Data.SqlClient的。 SqlDataReader.GetByte(Int32 i)+27
Survey.Models.SurveyDbModel.CheckIfFinished(Guid pid)+230
我在哪里错了?