protected void Button1_Click(object sender, EventArgs e)
    {
        WebModel.UserInfo model = new WebModel.UserInfo();
        model.UserId = TextBoxUserId.Text;
        model.UserName = TextBoxUserName.Text;
        model.Password = TextBoxPassword.Text;        if (dal.Add(model) == 0)
        {
            MessageBox.ResponseScript(this.Page, "alert('添加成功');");
            Response.Redirect("UserInfo.aspx");
        }
        else
        {
            MessageBox.ResponseScript(this.Page, "alert('添加失败');");
        }
    }model.UserId = TextBoxUserId.Text;数据库这3个字段都是varchar类型,UserID原来是int类型,现在我改成了varchar类型。三层模式写的

解决方案 »

  1.   

    你把UserId改成string型不就好了么?
      

  2.   

    model.UserId = Convert.ToInt32(TextBoxUserId.Text);
      

  3.   

    这样该部怎么好啊 要该的地方多 我觉得还是楼上直接转比较好的!
    model.UserId = Convert.ToInt32(TextBoxUserId.Text);
      

  4.   

    一层一层往下看
    估计你只改了model层的类型
      

  5.   

    转换一下int a=0;
    model.UserId = int.TryParse(TextBoxUserId.Text,out a);
      

  6.   


    都没认真看嘛,原来才是int,现在改成了varchar。我也估计是这个问题,我把model清理,重新生成了,还是不行,每次弄这个最麻烦了。再不行的话,干脆重写好了。
      

  7.   

    //友好一点
    int.TryParse(string,out int result);
      

  8.   

    为什么经常修改了model,都会出现这个问题呢?这样不是很麻烦嘛? 有什么好点的方法解决么?
      

  9.   

    model和数据库联系较为紧密
    连数据库你都经常改动,整个程序的改动自然会比较大先把数据库设计好,这个是必须的
      

  10.   

    model.UserId = int.Parse(TextBoxUserId.Text);
    或者
    model.UserId=Convert.ToInt32(TextBoxUserId.Text);
      

  11.   

    没可用分发帖了。我把类型改回int了。
    protected void Button1_Click(object sender, EventArgs e)
        {
            WebModel.UserInfo model = new WebModel.UserInfo();
            model.UserId = Convert.ToInt32(TextBoxUserId.Text);
            model.UserName = TextBoxUserName.Text;
            model.Password = TextBoxPassword.Text;        if (dal.Add(model) != 0)
            {
                MessageBox.ResponseScript(this.Page, "alert('添加成功');");
                Response.Redirect("UserInfo.aspx");
            }
            else
            {
                MessageBox.ResponseScript(this.Page, "alert('添加失败');");
            }
        }
    现在运行到这里if (dal.Add(model) != 0)会出现'UserId'列名无效。
    'UserName'列名无效。
    'Password'列名无效。
    数据库里字段都是这3个啊,数据库连接也对。
      

  12.   

    用C#中的Convert.ToInt32,将string类型转换为Int类型
      

  13.   

    大家看帖子都没认真看啊,都说用convert.Toint32,可是我问的根本不是这个问题,这些问题解决了。
    大家都没BS的仪表盘类控件,例如天气预报里,气温,风向类的,免费无水印的最好,收费的要1500美金,太贵了。
      

  14.   

    我认为是你层中用get set的时候把userid设置为int了 你看下··把她改为string 
      

  15.   

    那个问题解决了,是model.dll文件加载问题