以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 报错没有指出具体位置,如何解决? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=195926) |
-- 作者:lgz518 -- 发布时间:2025/3/21 11:46:00 -- 报错没有指出具体位置,如何解决? 报错没有指出具体位置,如何解决? 自已猜可能下面代码出错,编写完代码没报错,打开项目时,报错,没指出位置,很可能下面代码,但不知哪错 错误所在事件: 详细错误信息: 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 |
-- 作者:有点蓝 -- 发布时间:2025/3/21 11:49:00 -- 提示很明显了,数据源没有 \'bh_tb\'这个名称的表 |
-- 作者:lgz518 -- 发布时间:2025/3/21 12:41:00 -- 狐表上是有SQL2008的\'bh_tb表,项目打开却报错 |
-- 作者:lgz518 -- 发布时间:2025/3/21 12:48:00 -- Dim SqGl As String = CExp("selecGt * from bh_tb ") \'执行SQL 改为 Dim SqGl As String = CExp("selecGt * from {bh_tb}") \'执行SQL 报错下面提示 Microsoft Jet 数据库引擎找不到输入表或查询 \'~TMPCLPbh_tb\'。 确定它是否存在,以及它的名称的拼写是否正确。
|
-- 作者:有点蓝 -- 发布时间:2025/3/21 13:31:00 -- 肯定没有这个表 |
-- 作者:lgz518 -- 发布时间:2025/3/21 14:10:00 -- \'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 如何解决?
|
-- 作者:有点蓝 -- 发布时间:2025/3/21 14:22:00 -- db.Parameters.Add("@Bm", pts(0))这二行代码是否正确?没报错,但看不有点怪 db.Parameters.Add("@HName", pts(1))
|
-- 作者:lgz518 -- 发布时间:2025/3/21 14:30:00 -- 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 |
-- 作者:有点蓝 -- 发布时间:2025/3/21 14:48:00 -- 1、2个问号必须对应2个参数,用法看7楼 2、不要自己创造不存在的用法,不要把Foxtable的用法和第三方组件的用法混淆
|
-- 作者:lgz518 -- 发布时间:2025/3/21 15:12:00 -- 下面问题我没表达清楚 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 |