C#中同时插入多个表的问题(急)

来源:百度知道 编辑:UC知道 时间:2024/06/20 17:50:49
string str = "insert into zgda ([zgdm], [xm], [ks]) values (@zgdm, @xm, @ks)";
int number = 0;
cmd.Open();

try
{
if ((zgdm_textBox.Text == "" || xm_textBox.Text == ""))
{
MessageBox.Show("数据不完整!");
return;
}

else
{
SqlParameter[] pa = new SqlParameter[3];
pa[0] = new SqlParameter("@zgdm", zgdm_textBox.Text.Trim());
pa[1] = new SqlParameter("@xm",xm_textBox.Text.Trim());
pa[2] = new SqlParameter("@ks",ks_comboBox.Text.Trim());
number = cmd.ExecuteNonQuery(str, true, false, pa);//执行添加操作,这里也可以判断一下返回值,看是否已经添加到数据库中.false指没有用到存储过程
cmd.Close();

1.只是警告,因为
cmd.ExecuteNonQuery(str, true, false, pa);//执行... cmd.Close();
都写str了.后面的依然是str,并没有str2和str3那句SQL
要改就改str2和str3后面的cmd.ExecuteNonQuery...
2.用断点跟踪一下.看看执行到哪里重复showmessage了
3.判断的话可以考虑一个一个textbox框来判断.
建议一下:你应该在zgda表中添加一个触发器,插入数据之后同时插入新内容到教育经验jyjl 那里,然后就不用判断后面2个表的资料是否齐全.一律update一下jyjl 表即可

第一个应该只是警告,不是错误.而且你确实没有使用

SqlParameter[] pa = new SqlParameter[3];
pa[0] = new SqlParameter("@zgdm", zgdm_textBox.Text.Trim());
pa[1] = new SqlParameter("@jyjl_jdyx", jyjl_jgyx_textBox.Text.Trim());
pa[2] = new SqlParameter("@jyjl_xz", jyjl_xz_comboBox.Text.Trim()); number2 = cmd.ExecuteNonQuery(str, true, false, pa);//执行... cmd.Close();

number2 = cmd.ExecuteNonQuery(str, true, false, pa);//执行...
是不是应该改成
number2 = cmd.ExecuteNonQuery(str2, true, false, pa);//执行...呢?

第二个问题,我觉得应