c#插入两条sql语句,怎么用事务处理的方法
当我按下 button按钮后,同时向两个不同的表中插入数据
我用的事务处理的方法,具体也不清楚能用不。刚刚接触事务处理,大家帮我看看为啥不能插入成功吧
private void buttonAdd_Click(object sender, EventArgs e)
{
DbCnn.con.Open();
SqlTransaction MyTra = DbCnn.con.BeginTransaction();
SqlCommand MyCom = new SqlCommand();
MyCom.Connection = DbCnn.con;
MyCom.Transaction = MyTra;
try
{
string gu = Guid.NewGuid().ToString().Trim();
MyCom.CommandText = "INSERT INTO TN_SYS_ROLE (CN_GUID,CN_S_NAME, CN_S_DESC) VALUES ('"+gu+"','"+textBox1.ToString().Trim ()+"','"+textBox2.ToString ().Trim ()+"')";
MyCom.ExecuteNonQuery();
MyCom.CommandText = "INSERT INTO TN_SYS_BUSINESS_TYPE(CN_GUID,CN_S_NAME)VALUES('" + gu + "','" + comboBox.ToString().Trim() + "')";
MyCom.ExecuteNonQuery();
MyTra.Commit();
MessageBox.Show("成功执行");
}
catch (Exception )
{
MyTra.Rollback();
MessageBox.Show("添加失败");
}
finally
{
DbCnn.con.Close();
}
} c# insert sql
[解决办法]
catch (Exception ex)
{
MyTra.Rollback();
MessageBox.Show(ex.ToString());
}
自己看什么错
[解决办法]
如果你这是网站里单页的链接,可以应用其他页面的连接方法。你也可以重新连接数据库,你这好像没有连数据库啊!
给你段简单的代码。
string sConnectionString = @"server=xxxx;database=xxx;user id=sa;password=xxxx;";
string sSql = "insert into 表名(表中列名) values('"+textbox.Text+"',)";//你看看此处textbox是大写还是小写,对应好ID.
SqlConnection conn = new SqlConnection();
conn.ConnectionString = sConnectionString;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sSql;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
建议你2次insert2表,分2次连吧。 此代码下面再copy一下,参数改一改就OK.
如果你想要插入有数据的列或者行,sql语句用update 表名 set 列名 = '"+xxx.Text+"' where 加个条件。
[解决办法]
这个错误提示是你数据库字段定义的长度不够
你检查一下CN_GUID,CN_S_NAME, CN_S_DESC这三个字段长度,把他们长度设足够大, 注意:汉字占两个长度
[解决办法]
comboBox.ToString().Trim()
这个不对吧,这个出来长度超过了36,应该是下面这个吧
comboBox.Text.ToString().Trim()
[解决办法]
还有textBox1.ToString().Trim ()+"','"+textBox2.ToString ().Trim ()+"
应该是
textBox1.Text.ToString().Trim ()+"','"+textBox2.Text.ToString ().Trim ()+"
[解决办法]
这个错误就是另外的错误的,
主键、外键等冲突了,你好好在检查一下数据库设计
[解决办法]