问题描述
- 用c#把数据提交到相关联的两张access数据表中
-
现在要把姓名、密码、学号、性别添加到数据库表中,现在有两个表:账号表和信息表,要把姓名、密码添加到账号表,把姓名学号性别添加到信息表,两张表有建立关系,账号表中的姓名是主键,用c#语言怎么把文本框中的信息添加到两张表中,求大神帮帮忙,最好有代码看看,谢谢了protected void Button1_Click(object sender, EventArgs e) { string TID = TextBox1.Text.ToString(); string username = TextBox2.Text.ToString(); string password = TextBox3.Text.ToString(); string sex = RadioButtonList1.Text.ToString(); string strConnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:My_WebApp_Databysj.mdb"; //连接数据库 OleDbConnection objConnection = new OleDbConnection(strConnection); //打开连接 objConnection.Open(); OleDbCommand sqlcmdn = new OleDbCommand("insert into 账号-学生 values('" + username + "','" + password + "')", objConnection); //sql语句 OleDbCommand sqlcmd = new OleDbCommand("insert into 学生 values('" + TID + "','" + username + "','" + RadioButtonList1.SelectedValue + "')", objConnection); //sql语句sqlcmdn.ExecuteNonQuery();sqlcmd.ExecuteNonQuery(); objConnection.Close(); }单独添加第一个可以,第二个不行,一起添加的话两个都不行。这样添加哪里错了吗,求大神指导 (两张表有添加关系,第一张表的主键是username)
解决方案
sqlcmdn.ExecuteNonQuery();这个写的位置不对
应该每写一条sql就执行一次这个,否则等于把最后一条sql执行了2次。
解决方案二:
connection被第一个独占了,你第一个cmd执行完后,要将cmd关闭,然后在执行第二个,不是只有connection要关闭,command也是要关闭的
解决方案三:
先插主表(账号表),再插子表(信息表),记得带上事务就可以了。
时间: 2024-11-01 12:37:49