这个三个参数怎么传出来,我怎么写的不对啊!忘知情的老大们指导一下.
                    这里报错
                        ↓
public string SelectNetBarInfo(string contName, out string operatorPwd, out string publicName, out string publicPwd)
        {
            try
            {
                sqlconn = new SqlConnection("server=192.168.1.9;uid=gsvnet;pwd=gsvnet;database=GSVNetCenter");
                selcmd = new SqlCommand();
                selcmd.Connection = sqlconn;
                selcmd.CommandText = "UpdateUserInfo";
                selcmd.CommandType = CommandType.StoredProcedure;
                selcmd.Parameters.AddWithValue("@LoginName", contName);
                selcmd.Parameters.Add("@LoginPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                selcmd.Parameters.Add("@PublicUserName", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                selcmd.Parameters.Add("@PublicUserPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                if (sqlconn.State != ConnectionState.Closed)
                {
                    sqlconn.Close();
                }
                sqlconn.Open();
                selcmd.ExecuteNonQuery();
                operatorPwd = selcmd.Parameters["@LoginPwd"].Value.ToString();
                publicName = selcmd.Parameters["@PublicUserName"].Value.ToString();
                publicPwd = selcmd.Parameters["@PublicUserPwd"].Value.ToString();
            }
            catch (Exception ex)
            {
                return ex.Message;//这里报错
            }
            finally
            {
                sqlconn.Close();
            }
        }

解决方案 »

  1.   

    //连接关闭后再使用其返回值,而且楼主没说出错信息是什么
    public string SelectNetBarInfo(string contName, out string operatorPwd, out string publicName, out string publicPwd)
            {
    try{
                    sqlconn = new SqlConnection("server=192.168.1.9;uid=gsvnet;pwd=gsvnet;database=GSVNetCenter");
                    selcmd = new SqlCommand();
                    selcmd.Connection = sqlconn;
                    selcmd.CommandText = "UpdateUserInfo";
                    selcmd.CommandType = CommandType.StoredProcedure;
                    selcmd.Parameters.AddWithValue("@LoginName", contName);
                    selcmd.Parameters.Add("@LoginPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    selcmd.Parameters.Add("@PublicUserName", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    selcmd.Parameters.Add("@PublicUserPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    if (sqlconn.State != ConnectionState.Closed)
                    {
                        sqlconn.Close();
                    }
                    sqlconn.Open();
                    selcmd.ExecuteNonQuery();
    sqlconn.Close();
                    operatorPwd = selcmd.Parameters["@LoginPwd"].Value.ToString();
                    publicName = selcmd.Parameters["@PublicUserName"].Value.ToString();
                    publicPwd = selcmd.Parameters["@PublicUserPwd"].Value.ToString();
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
      

  2.   

    public string SelectNetBarInfo
    要返回 string
      

  3.   

    1。
    这个问题白问了,什么错都不说,编译错误,还是运行时错误,是调用错此函数发生误吗?
    也不会贴错误信息,堆栈信息之类,就是红色那一片文字
    2。
    此函数声明具有 string 类型的返回值,故你需要确保函数结束时,返回一个 string ,但你的代码,只有当 catch (Exception ex)
                {
                    return ex.Message;
                }
    才返回,故
    catch (Exception ex)
                {
                    return ex.Message;
                }
            }>>>catch (Exception ex)
                {
                    return ex.Message;
                }
            }
    return "OK"; // 执行成功,返回何值你自己定义3。
    你的 finally 内能访问到 sqlconn 吗?
    4。
    将会发生异常的代码部分放到 try - catch 中5。
    问题太多了,重写一个public string SelectNetBarInfo(string contName, out string operatorPwd, out string publicName, out string publicPwd)
            {
                //
                    sqlconn = new SqlConnection("server=192.168.1.9;uid=gsvnet;pwd=gsvnet;database=GSVNetCenter");
                    selcmd = new SqlCommand();
                    selcmd.Connection = sqlconn;
                    selcmd.CommandText = "UpdateUserInfo";
                    selcmd.CommandType = CommandType.StoredProcedure;
                    selcmd.Parameters.AddWithValue("@LoginName", contName);
                    selcmd.Parameters.Add("@LoginPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    selcmd.Parameters.Add("@PublicUserName", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
                    selcmd.Parameters.Add("@PublicUserPwd", SqlDbType.VarChar, 20).Direction = ParameterDirection.Output;
     
                // 
                try  {
                    
                    sqlconn.Open();
                    selcmd.ExecuteNonQuery();
                    operatorPwd = selcmd.Parameters["@LoginPwd"].Value.ToString();
                    publicName = selcmd.Parameters["@PublicUserName"].Value.ToString();
                    publicPwd = selcmd.Parameters["@PublicUserPwd"].Value.ToString();
                }
                catch (Exception ex)
                {
                    return ex.Message;//这里报错
                }
                finally
                {
                    if (sqlconn.State != ConnectionState.Closed)
                    {
                        sqlconn.Close();
                    }
                }
                
                return "OK";            
            }
      

  4.   

    你的程序错在
                finally
                {
                    sqlconn.Close();
                }
     吧,你在出错时,返回,后面的finally是必须执行的啊