下面是我写的一段代码, static string str = @"Data Source=(local);Initial Catalog=myuser;User ID=sa";
    static SqlConnection conn = new SqlConnection(str);//数据库连接 public static string updatepass(string username, string pass)
    {
        bool a = false;
        string sql = "update users set password='" + pass + "' where username='" + username + "'";
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        try
        {
            cmd.ExecuteNonQuery();//执行SQL语句
            a = true;//操作成功
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            cmd.Dispose();
            conn.Close();
        }
        return a;
    }    //用户注册,向数据库插入一条数据
    public static bool InsertUser(string username, string password, string mail, string name,string roleid)
    {
        bool b = false;
        //构造sql语句
        string sql = "INSERT INTO users (username, [password], mail, name,roleid) VALUES ('";
        sql += username + "','" + password + "','" + mail + "','" + name + "','" + roleid + "')";
        SqlCommand cmd = new SqlCommand(sql, conn);
        conn.Open();
        try
        {
            cmd.ExecuteNonQuery();//执行SQL语句
            b = true;//操作成功
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            cmd.Dispose();
            conn.Close();
        }
        return b;    }在这段代码中,存储不会出什么问题,但是更新语句在调试时出了问题,给出的提示为:错误 5,无法将类型“bool”隐式转换为“string” 就是在return a;这一句上,请高手赐教!谢谢

解决方案 »

  1.   

    public static string updatepass(string username, string pass)
    你这里说明返回值是string,但是你下面a是bool型的把
    public static string updatepass(string username, string pass)
    改成
    public static bool updatepass(string username, string pass)
    应该就可以了
      

  2.   

    public static string updatepass(string username, string pass)to:
    public static bool updatepass(string username, string pass)
    你的方法返回的string,而在方法内实际返回的是bool
      

  3.   

    public static bool updatepass(string username, string pass)
      

  4.   

    你定义的函数updatepass返回类型是string ,而ruturn a确是返回了string,当然会出错了.
      

  5.   

    就没返回值VOID的也无所谓的咯!
    b = true;//操作成功    这句话用个messengebox来SHOW一下好了!
    呵呵^楼上的都可以!关键要看返回值是什么类型的!
      

  6.   

    你返回的类型不对啊!!
    你的函数返回String类型!!
    但是你返回的是Bool类型!!