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不会浪费性能的