ASP.NET 将TextBox中的内容插入到数据库,并刷新到GridView中
ASP.NET将TextBox中的内容插入到数据库,并刷新到GridView中点击Button触发,附上Button中的代码:protectedvoidButton1_C...
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设为主键有没有关系?求教。我是新人,基础比较弱。。。 展开
点击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设为主键有没有关系?求教。我是新人,基础比较弱。。。 展开
4个回答
展开全部
DataRow insertedRow=tbl.Rows.Add(rowVals);
多余的嘛
多余的嘛
追问
Add多余的?
追答
先获得GridView的原始数据保存到DataTable中,
然后再添加新行:
DataTable dt = (DataTable)dataGridView1.DataSource;
DataRow dr = dt.NewRow();
dr[0] = 3;
dr[1] = "王五";
dr[2] = '男';
dr[3] = DateTime.Parse("1982-2-14");
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;
随便写的,然后再更新到数据库。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、ID设置为主键后,你可以设置ID为自增长,这样子,你在前台就不用输入ID的值了。避免ID重复输入,造成数据重复冗余。
2、数据会插入进去的,但是程序会报错!你设置一个ID本来就是为了区别每一行数据,你重复插入相同值的主键,就不能体现主键的作用了。
3、出现你所说的这种情况后,你去数据库删除时,就不让删除了。要通过新建查询删除了。。
望采纳!
2、数据会插入进去的,但是程序会报错!你设置一个ID本来就是为了区别每一行数据,你重复插入相同值的主键,就不能体现主键的作用了。
3、出现你所说的这种情况后,你去数据库删除时,就不让删除了。要通过新建查询删除了。。
望采纳!
追问
我建的表,共4列:ID,Name,Add,Tel,如果将ID设置为主键,然后并设置为自动增长。那么我想将TextBox1,TextBox2,TextBox3中的值分别插入到表中对应的Name,Add,Tel(相当于ID不插),请问该如何改代码?
追答
擦。我的回复呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询