为什么无论哪个版块都不能给我解决问题呢?!!!!! 数据库存储数据mysql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为没描述清楚.完全不知所云你光贴出了存储过程的SQL语句,而没有贴出你程序中是如何调用的,甚至不知道你是用什么程序调用的,你让我给你把错误显示哪?难道插到数据库里?此外,ROLLBACK根本没有加上,你问我加上会不会有用,我都不知道你加哪去了,鬼知道会不会有用. 我没有在哪里加rollback,只是用了网友的DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;这句话.这中间有个rollback 我不知道有没有回滚的作用如果出错的话,描述如果不清楚确实是我错了,我就是想他出错的时候抛出错误,SQLSERVER里边是直接有变量可以获取的,MYSQL我不晓得,网上也一大堆东西。至于程序里面怎么调用,就是传个参数罢了,c#后台调用存储过程除了底层的代码之外,不就一句话吗? 我其他存储过程都没错,这个存储过程也能执行,但是一模一样的数据进去如果出错的话,再把代码返回去执行,结果又成功了,我苦恼的是这个。 我没有在哪里加rollback,只是用了网友的DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END;这句话.这中间有个rollback 我不知道有没有回滚的作用如果出错的话,描述如果不清楚确实是我错了,我就是想他出错的时候抛出错误,SQLSERVER里边是直接有变量可以获取的,MYSQL我不晓得,网上也一大堆东西。至于程序里面怎么调用,就是传个参数罢了,c#后台调用存储过程除了底层的代码之外,不就一句话吗? 我其他存储过程都没错,这个存储过程也能执行,但是一模一样的数据进去如果出错的话,再把代码返回去执行,结果又成功了,我苦恼的是这个。所以后来我想抛出错误也没用了,因为有错的时候我返回去重新执行代码又没有错了,所以肯定捕捉不到错误了。我想弄清楚的是:1.为什么有时候可以有时候不可以。2.我这个存储过程能不能出错回滚。 这个存储过程非常简单,就是存在即更新,不存在即插入。 这不是中间有rollback,每个分号是一个操作啊如果回滚,就将errno置为1,然后你去查看errno就行了你需要在存储过程中判断,都成功就commit,否则rolllback rollback在那句话里已经写了,下面还要写的吗? 我这个存储过程的框架是网上看来的,人家测试过说行。我就拿来套了,我这样写是不能回滚还是怎么样? 看这里http://bbs.csdn.net/topics/390827195?page=1#post-397706157 上面的链接跟这个是同一个http://bbs.csdn.net/topics/390827195 http://blog.sina.com.cn/s/blog_6dd65c6f0100t3u5.html你要用事物,要按照事物的格式写,然后你说会不会回滚。其实这个自己可以测试一下啊,如果没提交之前出错,肯定会回滚的。 这个网站我去看了下 也去实验了一下, 结果还是一样 ,就是出错的时候 再返回去再次执行 ,又正常了,我想问是不是可能是我的数据库有问题? 数据库服务器在linux系统下的,是之前公司一个同事搭的.这个跟数据库有关系吗? 这个网站我去看了下 也去实验了一下, 结果还是一样 ,就是出错的时候 再返回去再次执行 ,又正常了,我想问是不是可能是我的数据库有问题? 数据库服务器在linux系统下的,是之前公司一个同事搭的.这个跟数据库有关系吗?这样描述你能懂的吧大侠? 我就是奇怪呀....我Q282256078 如果有人知道是为什么 ,请告诉我一下好不 因为没有报什么错误信息,很难有说服力,直接在mysql中执行,他会报什么错误? 报的错误就是返回1,1是我在存储过程中定义的,我给你看存储过程begin declare a int;DECLARE errno TINYINT DEFAULT '0';DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET errno = 1;START TRANSACTION; select count(tid) INTO a from xy_order1 where tid=tid1; if(a=0) then insert into xy_order1 (tid,dp_id,customerno,created,endtime,`status`,trade_from,type, pay_time,total_fee,post_fee,consign_time,modified,trade_insert,trade_update,alipay_no,payment,discount_fee, point_fee,real_point_fee,shipping_type,buyer_cod_fee,seller_cod_fee,express_agency_fee,adjust_fee, buyer_obtain_point_fee,cod_fee,cod_status,buyer_alipay_no,receiver_name,receiver_state, receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone, buyer_email,commission_fee,num,received_payment,promotion_detail,seller_nick,is_brand_sale,is_part_consign,buyer_memo,seller_memo) values(tid1,dp_id1,customerno1 ,created1,end_time1,status1 ,trade_from1,type1,pay_time1 ,total_fee1,post_fee1,consign_time1 ,modified1,jdp_created1,jdp_modified1,alipay_no1 ,payment1,discount_fee1,point_fee1 ,real_point_fee1,shipping_type1,buyer_cod_fee1 ,seller_cod_fee1,express_agency_fee1 ,adjust_fee1,buyer_obtain_point_fee1,cod_fee1 ,cod_status1,buyer_alipay_no1,receiver_name1 ,receiver_state1,receiver_city1,receiver_district1 ,receiver_address1,receiver_zip1,receiver_mobile1,receiver_phone1 ,buyer_email1,commission_fee1 ,num1,received_payment1,promotion_detail1,seller_nick1,is_brand_sale1,is_part_consign1,buyer_memo1,seller_memo1); else UPDATE xy_order1 set dp_id = dp_id1, customerno = customerno1 , created = created, `status` = status1 , endtime = end_time1 , trade_from = trade_from1 , type = type1 , pay_time = pay_time1 , total_fee = total_fee1 , post_fee = post_fee1 , consign_time = consign_time1 , modified = modified1 , trade_update=jdp_modified1, trade_insert=jdp_created1, alipay_no = alipay_no1 , payment = payment1 , discount_fee = discount_fee1 , point_fee = point_fee1 , real_point_fee = real_point_fee1, shipping_type = shipping_type1 , buyer_cod_fee = buyer_cod_fee1 , seller_cod_fee = seller_cod_fee1 , express_agency_fee = express_agency_fee1, adjust_fee = adjust_fee1 , buyer_obtain_point_fee = buyer_obtain_point_fee1 , cod_fee = cod_fee1 , cod_status = cod_status1 , buyer_alipay_no = buyer_alipay_no1 , receiver_name = receiver_name1 , receiver_state = receiver_state1 , receiver_city = receiver_city1 , receiver_district = receiver_district1 , receiver_address = receiver_address1 , receiver_zip = receiver_zip1 , receiver_mobile = receiver_mobile1 , receiver_phone = receiver_phone1 , buyer_email = buyer_email1 , commission_fee = commission_fee1 , num = num1 , received_payment = received_payment1 , promotion_detail = promotion_detail1, seller_nick=seller_nick1, is_brand_sale=is_brand_sale1, is_part_consign=is_brand_sale1, buyer_memo=buyer_memo1, seller_memo=seller_memo1 where tid=tid1; END IF; IF (errno=1) THEN ROLLBACK; ELSE COMMIT; END IF; SELECT errno;end select a=count(tid) from xy_order1 where tid=tid1; 这么写可以吗?我对mysql不是很熟,mssql是这么写的 在页面中输出执行的sql语句,然后复制到mysql中去执行 into是没有错的 我觉得语句应该没有错误. 在页面中输出执行的sql语句,然后复制到mysql中去执行页面是直接传参的,return SQLDBHelper.RunProcedure("pro_Order1", parameters, "ds").Tables[0].Rows[0][0].ToString(); 没有SQL语句的. lz你就不会去看看SQLDBHelper.RunProcedure("pro_Order1", parameters, "ds").Tables[0].Rows[0][0].ToString();这个是什么值啊,一般情况会是Error Code,用这个code去MySql官网查就能知道除了什么错了还有,不要怪大家不帮你,你自己没说清楚谁都不知道怎么帮。 返回的是我从数据库里返回的标识 ,代表有没有错误,一个值而已,怎么可能会是Error Code? 我存储过程都喜欢在SQL里返回标识,不会直接返回错误信息,这句话一点错误也没有啊.你觉得我在数据库里返回select errno;会有什么问题?可以说说看的 SQLDBHelper.RunProcedure("pro_Order1", parameters, "ds")这个返回我的一个结果,是一个表格,会有什么问题? 如果不通cmd直接给运行的外部win窗体程序传参呢? 有没有关于C#性能编程的书 高手帮忙啊 谁有mp3点播的c#源码网站,重谢. 有关存储过程的问题,进入观看详情!万分火急! 如何继承控件,在线等,马上结贴 关于fileupload中SAVEas的问题 有什么函数或者方法可以启动一个应用程序,比如word 为什么我的贴子无法在列表中找到,而只能在"我的贴子"中找到? 如何防止 vs.net 自作聪明!!!!!!! winform 与网页元素交互。 写了个CS程序创建一个文件,说访问被拒绝
你光贴出了存储过程的SQL语句,而没有贴出你程序中是如何调用的,甚至不知道你是用什么程序调用的,你让我给你把错误显示哪?难道插到数据库里?此外,ROLLBACK根本没有加上,你问我加上会不会有用,我都不知道你加哪去了,鬼知道会不会有用.
如果回滚,就将errno置为1,然后你去查看errno就行了
你需要在存储过程中判断,都成功就commit,否则rolllback
http://bbs.csdn.net/topics/390827195?page=1#post-397706157
http://bbs.csdn.net/topics/390827195
这样描述你能懂的吧大侠? 我就是奇怪呀....我Q282256078 如果有人知道是为什么 ,请告诉我一下好不
begin
declare a int;
DECLARE errno TINYINT DEFAULT '0';
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET errno = 1;
START TRANSACTION;
select count(tid) INTO a from xy_order1 where tid=tid1;
if(a=0) then
insert into xy_order1 (tid,dp_id,customerno,created,endtime,`status`,trade_from,type,
pay_time,total_fee,post_fee,consign_time,modified,trade_insert,trade_update,alipay_no,payment,discount_fee,
point_fee,real_point_fee,shipping_type,buyer_cod_fee,seller_cod_fee,express_agency_fee,adjust_fee,
buyer_obtain_point_fee,cod_fee,cod_status,buyer_alipay_no,receiver_name,receiver_state,
receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,
buyer_email,commission_fee,num,received_payment,promotion_detail,seller_nick,is_brand_sale,is_part_consign,buyer_memo,seller_memo)
values(tid1,dp_id1,customerno1
,created1,end_time1,status1
,trade_from1,type1,pay_time1
,total_fee1,post_fee1,consign_time1
,modified1,jdp_created1,jdp_modified1,alipay_no1
,payment1,discount_fee1,point_fee1
,real_point_fee1,shipping_type1,buyer_cod_fee1
,seller_cod_fee1,express_agency_fee1
,adjust_fee1,buyer_obtain_point_fee1,cod_fee1
,cod_status1,buyer_alipay_no1,receiver_name1
,receiver_state1,receiver_city1,receiver_district1
,receiver_address1,receiver_zip1,receiver_mobile1,receiver_phone1
,buyer_email1,commission_fee1
,num1,received_payment1,promotion_detail1,seller_nick1,is_brand_sale1,is_part_consign1,buyer_memo1,seller_memo1);
else
UPDATE xy_order1 set dp_id = dp_id1,
customerno = customerno1 ,
created = created,
`status` = status1 ,
endtime = end_time1 ,
trade_from = trade_from1 ,
type = type1 ,
pay_time = pay_time1 ,
total_fee = total_fee1 ,
post_fee = post_fee1 ,
consign_time = consign_time1 ,
modified = modified1 ,
trade_update=jdp_modified1,
trade_insert=jdp_created1,
alipay_no = alipay_no1 ,
payment = payment1 ,
discount_fee = discount_fee1 ,
point_fee = point_fee1 ,
real_point_fee = real_point_fee1,
shipping_type = shipping_type1 ,
buyer_cod_fee = buyer_cod_fee1 ,
seller_cod_fee = seller_cod_fee1 ,
express_agency_fee = express_agency_fee1,
adjust_fee = adjust_fee1 ,
buyer_obtain_point_fee = buyer_obtain_point_fee1 ,
cod_fee = cod_fee1 ,
cod_status = cod_status1 ,
buyer_alipay_no = buyer_alipay_no1 ,
receiver_name = receiver_name1 ,
receiver_state = receiver_state1 ,
receiver_city = receiver_city1 ,
receiver_district = receiver_district1 ,
receiver_address = receiver_address1 ,
receiver_zip = receiver_zip1 ,
receiver_mobile = receiver_mobile1 ,
receiver_phone = receiver_phone1 ,
buyer_email = buyer_email1 ,
commission_fee = commission_fee1 ,
num = num1 ,
received_payment = received_payment1 ,
promotion_detail = promotion_detail1,
seller_nick=seller_nick1,
is_brand_sale=is_brand_sale1,
is_part_consign=is_brand_sale1,
buyer_memo=buyer_memo1,
seller_memo=seller_memo1 where tid=tid1;
END IF;
IF (errno=1) THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
SELECT errno;
end
在页面中输出执行的sql语句,然后复制到mysql中去执行
在页面中输出执行的sql语句,然后复制到mysql中去执行页面是直接传参的,return SQLDBHelper.RunProcedure("pro_Order1", parameters, "ds").Tables[0].Rows[0][0].ToString(); 没有SQL语句的.
SQLDBHelper.RunProcedure("pro_Order1", parameters, "ds").Tables[0].Rows[0][0].ToString();
这个是什么值啊,一般情况会是Error Code,用这个code去MySql官网查就能知道除了什么错了还有,不要怪大家不帮你,你自己没说清楚谁都不知道怎么帮。