首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#插入两条sql语句,如何用事务处理的方法

2013-01-11 
c#插入两条sql语句,怎么用事务处理的方法当我按下 button按钮后,同时向两个不同的表中插入数据我用的事务

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
[解决办法]

引用:
引用:你应该把两条SQL语句写到一个string中,并且两条SQL语句使用回车换行符进行分割
那样的话是这样?string str=insert into 表1..;insert into 表2???这样的话执行语句还同步吗?万一第一条语句成功了,第二条没成功呢??


放在一起,会在一个事物的执行,要么都成功,要么都失败
[解决办法]


 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 ()+"
[解决办法]
这个错误就是另外的错误的,
主键、外键等冲突了,你好好在检查一下数据库设计
[解决办法]

引用:
引用:
如果你这是网站里单页的链接,可以应用其他页面的连接方法。你也可以重新连接数据库,你这好像没有连数据库啊!
给你段简单的代码。 
string sConnectionString = @"server=xxxx;database=xxx;user id=sa;password=xxxx;";
string sSql = "insert into 表……


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() + "')";

你的代码我真不爱看,

gu= Guid.NewGuid().ToString().Trim();
我写到这里你看不懂我觉得你就真的不要论坛里问了,直接去补习基础吧

热点排行