注册 登录
编程论坛 ASP.NET技术论坛

ASP.NET 将TextBox中的内容插入到数据库,并刷新到GridView中

lhw7791086 发布于 2012-10-02 10:33, 584 次点击



点击Button触发,附上Button中的代码:
protected void Button1_Click(object sender, EventArgs e)
    {

        SqlConnection conn=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\test.mdf;Integrated Security=True;User Instance=True");

        DataSet ds=new DataSet();
        SqlDataAdapter daAuthors=new SqlDataAdapter("SELECT * FROM test",conn);
        SqlCommandBuilder bldr=new SqlCommandBuilder(daAuthors);

        daAuthors.Fill(ds);

        DataTable tbl=ds.Tables["Table"];
        DataColumn[] colArr=new DataColumn[1];
        colArr[0]=tbl.Columns[0];
        tbl.PrimaryKey=colArr;

        object[] rowVals=new object[4];
        rowVals[0] = TextBox1.Text.Trim();
        rowVals[1] = TextBox2.Text.Trim();
        rowVals[2] = TextBox3.Text.Trim();
        rowVals[3] = TextBox4.Text.Trim();

        DataRow insertedRow=tbl.Rows.Add(rowVals);
        conn.Open();
        daAuthors.Update(ds);

数据库是我自建的,里面又自建了个表,共4列:ID,Name,Add,Tel。其中ID设为主键。
在4个TextBox输入值后,点击BUTTON,出现错误提示:

列“ID”被约束为是唯一的。值“10”已存在。
错误行在: DataRow insertedRow=tbl.Rows.Add(rowVals);

虽然报错,但是当我进入数据库时,发现表中数据已经被添加更新了,就是TextBox中输入的数据,而且ID的值也是刚才输入的值。
不知道为什么会出现这种情况?不知道跟ID设为主键有没有关系?求教。我是新人,基础比较弱。。。
3 回复
#2
Nik20112012-10-04 20:36
既然id是主键,必须是唯一的。列“ID”被约束为是唯一的。值“10”已存在。
错误行在: DataRow insertedRow=tbl.Rows.Add(rowVals);
说明数据表里已经有这一条数据了。
#3
跳过去2012-10-05 18:49
设成主键之后最好就顺便设成 自动增长的,在你添加的时候ID 值就可以不用管它
#4
zc33126362012-10-06 15:58
1