有一项目,之前使用的是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编辑过]