c#代码疑问,烦请各位指点
以下代码:
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 = " ";就可以成功,但是如果修改这样以后,又觉得代码做了不必要做的事,事必会影响性能。
各位有没有更好的写这段代码的方式,如何写这段代码才最好?
如果代码中有其它问题,也一并指出,谢谢指点
------解决方案--------------------1.把string photoname;也放入try当中。
2.可以不string photoname= " ";
而用string photoname=null;
或者 string photoname = new string();
------解决方案--------------------一个string不会浪费性能的