以下代码:    
 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 = "";就可以成功,但是如果修改这样以后,又觉得代码做了不必要做的事,事必会影响性能。各位有没有更好的写这段代码的方式,如何写这段代码才最好?
如果代码中有其它问题,也一并指出,谢谢指点