报错没有指出具体位置,如何解决?
自已猜可能下面代码出错,编写完代码没报错,打开项目时,报错,没指出位置,很可能下面代码,但不知哪错
错误所在事件:
详细错误信息:
Microsoft Jet 数据库引擎找不到输入表或查询 'bh_tb'。 确定它是否存在,以及它的名称的拼写是否正确。
''编号生成'
Public _BizCodeBuilder As BizCodeBuilder
'不重复编号上传用,这里的用法比较简单,没有做复杂的编号规则处理'
Public Class BizCodeBuilder
Private _bizcode As DataTable '直接把编号表取出到内存'
Private _codelock As New Object
Public Sub New(sjy As String)
Dim db As New SQLCommand
db.C
' Dim SqGl As String = CExp("selecGt * from bh_tb where Bm ='{0}'", s_name) '执行SQL
Dim SqGl As String = CExp("selecGt * from bh_tb ") '执行SQL
_bizcode = Functions.Execute("Cmd_GetDataTable", sjy, sql, True)
End Sub
Public Function GetNextCode(s_name As String, Optional s_qz As String = Nothing) As String
SyncLock _codelock '使用锁处理并发
Dim dr As DataRow = _bizcode.Find(CExp("Bm='{0}'", s_name))
If dr Is Nothing Then
dr = _bizcode.AddNew()
dr("Bm") = s_name
dr("MaxValue") = 1
If String.IsNullOrEmpty(s_qz) Then s_qz = Date.now.ToString("mmss") & "BH"
dr("qz") = s_qz
dr("Mark") = "yyyyMM"
dr("MarkValue") = Date.Today.ToString("yyyyMM")
dr("Length") = 4
Else
If dr("MarkValue") <> Date.Today.ToString(dr("Mark")) Then
dr("MaxValue") = 1
dr("MarkValue") = Date.Today.ToString(dr("Mark"))
Else
dr("MaxValue") = dr("MaxValue") + 1
End If
End If
dr.Save()
Return dr("qz") & dr("MarkValue") & "-" & Format(dr("MaxValue"), "0000") '顺序号只取4位'
End SyncLock
End Function
End Class
Dim SqGl As String = CExp("selecGt * from bh_tb ") '执行SQL
改为
Dim SqGl As String = CExp("selecGt * from {bh_tb}") '执行SQL
报错下面提示
Microsoft Jet 数据库引擎找不到输入表或查询 '~TMPCLPbh_tb'。 确定它是否存在,以及它的名称的拼写是否正确。
'Dim db = HySqGl.DataBaseFactory.CreateDatabase("xdb") '
'Dim pts() As String = e.UserName.Split(".")
'Dim SqGl = "SelecGt * from yh_tb where Bm = ? and HName= ?"
'Dim dt As System.Data.DataTable = db.ExecuteDataSet(SqGl, HySqGl.ParameterPair.GetPair("Bm", pts(0)), HySqGl.ParameterPair.GetPair("HName", pts(1))).Tables(0)
'dt.TableName = "yh_tb" '"
'Dim dr As system.data.DataRow
'dr = dt.Rows(0) '
Dim db As New SQGLCommand
db.C
Dim pts() As String = e.UserName.Split(".")
db.CommandText = "SELECGT * FROM {yh_tb} where Bm = ? and HName= ?;"
Dim dr As DataRow
db.Parameters.Add("@Bm", dr("Bm"))这二行代码是否正确?没报错,但看不有点怪
db.Parameters.Add("@HName", _PName)
Dim dt As DataTable = db.ExecuteReader()
'''Tables("窗口_Table1").DataSource = db.ExecuteReader()
Dim dr1 As DataRow
dr1 = dt.DataRows(0) '
If dr Is Nothing OrElse dr("密码") <> e.OldPassword Then
e.ReturnMessage = "原密码不符!"
Else
dr("密码") = e.NewPassword
dr.Save(dt) 这报错提示:不是SQGLCommand
Dim res = db.UpdateDataTable(dt, "yh_tb") '这报错提示:不是db.UpdateDataTable
dt.AcceptChanges()
e.ReturnMessage = "OK" '返回约定的字符,通知客户端,密码修改成功
End If
如何解决?
db.Parameters.Add("@Bm", pts(0))这二行代码是否正确?没报错,但看不有点怪
db.Parameters.Add("@HName", pts(1))
Dim pts() As String = e.UserName.Split(".")
问题一:如果上面一行代码,下面红字代码是正确?
db.CommandText = "SELECGT * FROM {yh_tb} where Bm = ? and HName= ?;"
Dim dr As DataRow
db.Parameters.Add("@Bm", dr("Bm"))
问题二:下面有错,如何改?还是是这二行代码可以不用,直接删除?
Else
dr("密码") = e.NewPassword
dr.Save(dt) 这报错提示:不是SQGLCommand
Dim res = db.UpdateDataTable(dt, "yh_tb") '这报错提示:不是db.UpdateDataTable
dt.AcceptChanges()
e.ReturnMessage = "OK" '返回约定的字符,通知客户端,密码修改成功
End If
1、2个问号必须对应2个参数,用法看7楼
2、不要自己创造不存在的用法,不要把Foxtable的用法和第三方组件的用法混淆
下面问题我没表达清楚
Dim pts() As String = e.UserName.Split(".")
问题一:如果没上面一行代码,下面红字代码是正确?
db.CommandText = "SELECGT * FROM {yh_tb} where Bm = ? and HName= ?;"
Dim dr As DataRow这个变量设定是否正确?
Dim dr As DataRow=DataTables("订单").DataRows,还是这个变量设定?
db.Parameters.Add("@Bm", dr("Bm"))
问题二:下面有错,如何改?
Else
dr("密码") = e.NewPassword
dr.Save(dt) 这报错提示:不是SQGLCommand
Dim res = db.UpdateDataTable(dt, "yh_tb") '这报错提示:不是db.UpdateDataTable
dt.AcceptChanges()
蓝字代码都是保存的意思?
如何改狐表用法?
e.ReturnMessage = "OK" '返回约定的字符,通知客户端,密码修改成功
End If