标题:ASP.NET 将TextBox中的内容插入到数据库,并刷新到GridView中
只看楼主
lhw7791086
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-9-24
结帖率:100%
已结贴  问题点数:20 回复次数:3 
ASP.NET 将TextBox中的内容插入到数据库,并刷新到GridView中



点击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设为主键有没有关系?求教。我是新人,基础比较弱。。。
搜索更多相关主题的帖子: 数据库 
2012-10-02 10:33
Nik2011
Rank: 2
等 级:论坛游民
帖 子:23
专家分:37
注 册:2011-4-28
得分:7 
既然id是主键,必须是唯一的。列“ID”被约束为是唯一的。值“10”已存在。
错误行在: DataRow insertedRow=tbl.Rows.Add(rowVals);
说明数据表里已经有这一条数据了。
2012-10-04 20:36
跳过去
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:282
专家分:976
注 册:2012-8-13
得分:7 
设成主键之后最好就顺便设成 自动增长的,在你添加的时候ID 值就可以不用管它

光棍中.....
2012-10-05 18:49
zc3312636
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-6-30
得分:0 
2012-10-06 15:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382433-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.406343 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved