try catch,判断是否插入成功?(100)

问题描述

我的代码里有如下一段,目的是将excel数据导入access,但是我为了防止用户重复导入,就想在excel文档上面做上表示,如果导入成功,那么标示excel的rec为0,如果失败则表示为1,下次再导入则只导入rec为0的数据。我用了try,catch,但是好像不对,所有的都表示为0了,包括失败的数据。能不能请帮忙看一下。DoWhilemyReader.Read()TrySqlStr="insertintoaging([rec],[aging_date],[aging_sapno]...."Sql2="UPDATE[Sheet1$]SETrec='0'"cmd4.CommandText=Sql2cmd4.ExecuteNonQuery()cmd1.CommandText=SqlStrcmd1.ExecuteNonQuery()Response.Write("成功插入")CatchexAsExceptionSql2="UPDATE[Sheet1$]SETrec='1'"cmd4.CommandText=Sql2cmd4.ExecuteNonQuery()Response.Write("失败")EndTryLoop

解决方案

解决方案二:
这种情况一般都用事物,不对excel做操作,出错了只对数据库进行回滚代码我不会VB的,搜下吧,很多例子
解决方案三:
Sql2="UPDATE[Sheet1$]SETrec='0'"Sql2="UPDATE[Sheet1$]SETrec='1'"------------------------------這兩條SQL語句都是一次性更新整個sheet1$,你要加上where來匹配你真正要更新的記錄
解决方案四:
Sql2="UPDATE[Sheet1$]SETrec='0'"Sql2="UPDATE[Sheet1$]SETrec='1'"------------------------------這兩條SQL語句都是一次性更新整個sheet1$,你要加上where來匹配你真正要更新的記錄==============================================================================我加了where也是效果一样,有没有其他的办法能够防止重复插入呢?
解决方案五:
SqlStr="insertintoaging([rec],[aging_date],[aging_sapno]...."-----------------------------這條語句是插入一條記錄還是多條?
解决方案六:
SqlStr="insertintoaging([rec],[aging_date],[aging_sapno]...."-----------------------------這條語句是插入一條記錄還是多條?=========================================================================SqlStr="insertintoaging([rec],[aging_date],[aging_sapno])values('"&fixsql(myReader.GetValue(0))&"','"&fixsql(myReader.GetValue(1))&"','"&fixsql(myReader.GetValue(2))&"')"我有一个DoWhilemyReader.Read()在上面,应该是插入一条咯。
解决方案七:
那就看不出問題來了,最好逐行調試,然後看下數據庫和Excel中是否正常,確定出錯的原因。
解决方案八:
Sql2="UPDATE[Sheet1$]SETrec='0'"Sql2="UPDATE[Sheet1$]SETrec='1'"========================================都没写过滤条件,难怪会成为你说的那样
解决方案九:
没看懂楼主的意思...
解决方案十:
引用8楼roklba的回复:

没看懂楼主的意思...

//恩.
解决方案十一:
用事务来做,try中插入,cacth中异常就rollback
解决方案十二:
c#的例子,希望有所帮助privatestaticvoidExecuteSqlTransaction(stringconnectionString){using(SqlConnectionconnection=newSqlConnection(connectionString)){connection.Open();SqlCommandcommand=connection.CreateCommand();SqlTransactiontransaction;transaction=connection.BeginTransaction("SampleTransaction");command.Connection=connection;command.Transaction=transaction;try{command.CommandText="InsertintoRegion(RegionID,RegionDescription)VALUES(100,'Description')";command.ExecuteNonQuery();command.CommandText="InsertintoRegion(RegionID,RegionDescription)VALUES(101,'Description')";command.ExecuteNonQuery();transaction.Commit();Console.WriteLine("Bothrecordsarewrittentodatabase.");}catch(Exceptionex){transaction.Rollback();}}}
解决方案十三:
UPDATE[Sheet1$]SETrec='0'这样的话最后一次是成功的就会使所有的变成0如果是失败,就会使所有的变为1,要加个限制条件,根据你插入的记录的主键
解决方案十四:
你的excel要有一个类似主键的作为唯一标识的字段你在导数据的时候可以直接看你的数据库里有没存在这条数据,若存在就不用insert了
解决方案十五:
mark

时间: 2024-12-02 04:07:29

try catch,判断是否插入成功?(100)的相关文章

插入记录,如何提示插入成功呢,

问题描述 myconn.Open();try{sql="insertintoNews(Title,Content)values('"+Title+"','"+Content+"')";OleDbCommandcmd=newOleDbCommand(sql,myconn);cmd.ExecuteNonQuery();}catch(ExceptionExceptionObj){}如果成功的话,返回一个yn=0否则返回yn=1 解决方案 解决方案二:i

请问,为什么使用OleDbCommand.ExecuteNonQuery()插入一条记录,插入成功后,返回值还是为0?

问题描述 privatestaticvoidPrepareCommand(OleDbCommandcmd,CommandTypecmdType,stringcmdText,OleDbParameter[]cmdParms){cmd.CommandType=cmdType;cmd.CommandText=cmdText;if(cmdParms!=null)foreach(OleDbParameterparmincmdParms)cmd.Parameters.Add(parm);}publicsta

c# 事务处理 发现第一条sql语句执行插入成功了 第二条执行更新没成功

问题描述 c# 事务处理 发现第一条sql语句执行插入成功了 第二条执行更新没成功 求助高手帮忙分析一下 这个函数会不会出现我说的那种状况 两条指令第一条往Table1插入了一条信息 第二条更新Table2的某个字段 奇怪的是Table1插入了一条信息 但Table2没执行更新 不知道是不是这个函数的原因 如果这个函数不会出现这种状况麻烦高手帮忙分析一下可能是什么原因 谢谢 public void ExecuteScalar(CommandType cmdType, string[] cmdTe

在PB窗体中插入数据显示“插入成功”但查询后没有数据

问题描述 在PB窗体中插入数据显示"插入成功"但查询后没有数据 string r_dept_code, r_date1,r_date2,r_sp_code dec r_amount1,r_amount2,r_amount3 integer r_row,r_rowcount r_row=dw_1.getrow() r_rowcount=dw_1.rowcount() for r_row=1 to r_rowcount r_dept_code= dw_1.getitemstring(r_r

java web 技术-求助!关于模拟登陆利用接收的cookie判断登录是否成功,遇到了问题,,求大神们相助!在下多谢!

问题描述 求助!关于模拟登陆利用接收的cookie判断登录是否成功,遇到了问题,,求大神们相助!在下多谢! 在下学生最近在做一个用java开发模拟登陆校内网的项目,可是学校使用struts2做的,url的尾缀是.action,登陆前和登陆后的url一致,无法用html来判断,,于是就想用cookie来判断登陆是否成功,可是面临一个问题就是请求标头的Cookie是JSESSIONID=3CDAB1BA4520BD1F53E62F9D5BCCCC49之类的,发送的jsessionid和接收的jses

mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况??

问题描述 mysql里面没设置默认值字段也不允许为空,插入语句中也没指定值却能插入成功!是什么情况?? 如题,我的表结构是这样的 SQL语句:INSERT INTO test (name) VALUES ('lsq2') 求大神帮忙!! 解决方案 后面的图片上错了, 解决方案二: 楼主你替数据库想想,又不能为null,又得是int类型,还能怎么办,数据库只能补个0. 解决方案三: 我以为是会报错,这是我本地测试的 没有报错我在正式服务器上试了报错了,说字段没有默认值.

java 文件问题-如何使用java判断文件写入成功

问题描述 如何使用java判断文件写入成功 我使用了FileItem类将文件写入到服务器,但是我该如何判断是否写入成功,文件已经存在那个地址上 解决方案 你在去那个地址取一下,判断是否存在就行了 解决方案二: FileStream吧,这个是同步的,也就是说,写完函数才返回.所以自然你执行后面的语句就是写完了. 解决方案三: File file = new File("D://new.txt"); if(file.exists()){ //文件已存在 //file.delete();删除

app-Android通过jtds连接mssql,如何判断是否连接成功和执行sql语句后是否为空,求大神指教

问题描述 Android通过jtds连接mssql,如何判断是否连接成功和执行sql语句后是否为空,求大神指教 连接实例已经学会啦,但app启动后只能等待超时来判断是否连接到mssql,可如果sql语句执行后为空记录的话也只能等连接超时才能知道,我不知道如何做这两项判断,麻烦知道的给我写下实例好吗? 解决方案 http://blog.sina.com.cn/s/blog_60b5e13e0101mlot.html 解决方案二: http://www.2cto.com/database/20141

tapestry 框架中 客户端表单验证后 如何判断是否验证成功 并当验证成功后调用我自己写的一个js函数

问题描述 tapestry框架中客户端表单验证后如何判断是否验证成功并当验证成功后调用我自己写的一个js函数谢谢