【发布时间】:2012-07-29 02:20:22
【问题描述】:
发回参数时出现此错误
错误:必须在控制离开之前分配 Out 参数 当前方法
代码是
public void GetPapers(string web, out int Id1, out int Id2)
{
SqlConnection conn = new SqlConnection(ConnectionString());
conn.Open();
SqlCommand cmd = new SqlCommand("GetPapers", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@URL", String(web)));
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
Id1 = (int)rdr["ID1"];
Id2 = (int)rdr["ID2"];
}
rdr.Close();
}
称之为
GetPapers(web, out Id1, out Id2);
与这个问题有关
【问题讨论】:
-
必须在控制离开方法之前沿所有路径分配输出参数。由于您有 if 语句,因此它们可能不会被分配。
-
如果
rdr.Read()返回 false,您希望这些值是什么? -
@JonSkeet 代码仅在数据库中有某些内容时才有效,它就像一个事件接收器
-
@fdgfdgsdfg:所以也许你应该在数据库中没有任何内容时抛出异常?
-
@JonSkeet 是的,我稍后会进行验证:)
标签: c# compiler-errors .net-2.0