-- 作者:liguichuan
-- 发布时间:2012/6/4 13:08:00
-- [求助]关于ACCESS外部数据源的报错!
有一项目,之前使用的是SQL2008作数据源,可以正常使用,现在想使用ACCESS作为外部数据源,于是修改了数据源名称,但在保存时却出现如下错误:
此主题相关图片如下:错误.jpg
请问为什么报错?谢谢!
不知怎么回事,以下有色彩区域的代码一提交网站就会显示出错,请见下图截图!
此主题相关图片如下:显示乱码.jpg
此主题相关图片如下:数据源.jpg
此主题相关图片如下:数据源预览.jpg
BeforeSaveDataRow事件中代码为:
e.DataRow("商品信息录入时间") = Date.Now() \'获取当前系统时间 e.DataRow("商品信息录入员") = Vars("用户名") \'获取当前系统用户
Dim dr As DataRow = e.DataRow Dim pf As String If dr.RowState <> DataRowState.Added Then \'如果不是新增行 Return \'那么返回 Else pf = "SPXX" End If
Dim cmd1 As New SQLCommand Dim cmd2 As New SQLCommand Dim Key As Integer Dim nm As String = e.DataTable.name \'cmd1.C \'设置数据源名称(源使用的SQL2008数据源) \'cmd2.C (源使用的SQL2008数据源) cmd1.C \'设置数据源名称(新使用的ACCESS数据源) cmd2.C (新使用的ACCESS数据源)
cmd1.commandText = "Select Count(*) From [编号表] Where [前缀] = \'" & pf & "\' And 表名 = \'" & nm & "\'" If cmd1.ExecuteScalar = 0 Then \'如果编号表不存在前缀的行,那么增加一行 cmd1.commandtext = "Insert Into 编号表 (表名, 前缀, 顺序号) Values(\'" & nm & "\',\'" & pf & "\',1)" cmd1.ExecuteNonQuery \'用于执行不返回任何值的SQL命令,例如DELETE和UPDATE命令.该方法会返回一个整数,表示受影响的行数. End If cmd1.commandText = "Select [顺序号] From [编号表] Where [前缀] = \'" & pf & "\' And 表名 = \'" & nm & "\'" \'获得后台的顺序号 Do Key = cmd1.ExecuteScalar() \'从后台获得顺序号,用于执行返回单个值的命令 If key < 99999 Then cmd2.commandText = "Update [编号表] Set [顺序号] = " & (Key + 1) & " Where [顺序号] = " & Key & " And [前缀] = \'" & pf & "\' And 表名 = \'" & nm & "\'" If cmd2.ExecuteNonQuery() > 0 Then \'更新顺序号 Exit Do \'更新成功则退出循环 End If Else cmd2.commandText = "Update [编号表] Set [顺序号] = 1 " \'顺序号计数达到99999时,将顺序号重设为1 If cmd2.ExecuteNonQuery() > 0 Then \'更新顺序号 Exit Do \'更新成功则退出循环 End If End If Loop e.DataRow("自动编号") = pf & "-" & Format(Date.now(),"yyyyMMddHHmmss") & "-" & Format(Key,"00000")
[此贴子已经被作者于2012-6-4 13:15:11编辑过]
|