以下代码:
string GetPhotoNameByID(int id)
{
string photoname;
SqlConnection conn = DbOper.CreateConn();
try
{
DbOper.OpenConn(conn);
string cmdstr = "select @photoname=photoname from photos where id=@id";
SqlCommand cmd = new SqlCommand(cmdstr, conn);
cmd.Parameters.Add("@photoname", SqlDbType.NVarChar, 50);
cmd.Parameters.Add("@id", SqlDbType.Int, 4); cmd.Parameters["@photoname"].Direction = ParameterDirection.Output;
cmd.Parameters["@id"].Value = id;
cmd.ExecuteNonQuery();
photoname = cmd.Parameters["@photoname"].Value.ToString();
}
catch (Exception ee)
{
DbOper.WriteErrLog(Request.Url.ToString(), "GetPhotoNameByID failed," + ee.Message + ",userid=" + Session["userid"]);
}
finally
{
DbOper.CloseConn(conn);
}
return photoname;
}编译出错,提示错误 使用了未赋值的局部变量“photoname”
如果第一句改为string photoname = "";就可以成功,但是如果修改这样以后,又觉得代码做了不必要做的事,事必会影响性能。各位有没有更好的写这段代码的方式,如何写这段代码才最好?
如果代码中有其它问题,也一并指出,谢谢指点
string GetPhotoNameByID(int id)
{
string photoname;
SqlConnection conn = DbOper.CreateConn();
try
{
DbOper.OpenConn(conn);
string cmdstr = "select @photoname=photoname from photos where id=@id";
SqlCommand cmd = new SqlCommand(cmdstr, conn);
cmd.Parameters.Add("@photoname", SqlDbType.NVarChar, 50);
cmd.Parameters.Add("@id", SqlDbType.Int, 4); cmd.Parameters["@photoname"].Direction = ParameterDirection.Output;
cmd.Parameters["@id"].Value = id;
cmd.ExecuteNonQuery();
photoname = cmd.Parameters["@photoname"].Value.ToString();
}
catch (Exception ee)
{
DbOper.WriteErrLog(Request.Url.ToString(), "GetPhotoNameByID failed," + ee.Message + ",userid=" + Session["userid"]);
}
finally
{
DbOper.CloseConn(conn);
}
return photoname;
}编译出错,提示错误 使用了未赋值的局部变量“photoname”
如果第一句改为string photoname = "";就可以成功,但是如果修改这样以后,又觉得代码做了不必要做的事,事必会影响性能。各位有没有更好的写这段代码的方式,如何写这段代码才最好?
如果代码中有其它问题,也一并指出,谢谢指点
2.可以不string photoname="";
而用string photoname=null;
或者 string photoname = new string();
string photoname = string.Empty;