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设为主键有没有关系?求教。我是新人,基础比较弱。。。