以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- BeforeConnectOuterDataSource 中添加代码,就出现错误? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107428) |
||||||
-- 作者:lyx4040 -- 发布时间:2017/9/27 22:18:00 -- BeforeConnectOuterDataSource 中添加代码,就出现错误? 在全局代码中读取了一个图片 Public multimg As Image = GetImage("docs.png") 在表 DrawCell 中绘制了这个图片,之前一直正常。 在 BeforeConnectOuterDataSource 中设置了下数据源,打开项目时就弹出错误 e.ConnectionString = “Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=door;Data Source=LE-PC\\SQLEXPRESS” 我就只添加一个 Messagebox 也会弹出这个错误: 错误所在事件:表,订单表,DrawCell 详细错误信息: 调用的目标发生了异常。 值不能为空。 参数名: image 不知道什么原因? [此贴子已经被作者于2017/9/27 22:25:55编辑过]
|
||||||
-- 作者:有点甜 -- 发布时间:2017/9/27 22:39:00 -- 试试改成
Public multimg As Image = GetImage(projectPath & "images/docs.png") |
||||||
-- 作者:lyx4040 -- 发布时间:2017/9/27 22:51:00 -- 刚又认真试了下,因为我把设置保存在 ini 文件中, 全局代码中定义了一个读写ini 文件的类。只要调用了读ini的函数就会弹出错误。而且ini读取不到数据。但是这个函数不在 BeforeConnectOuterDataSource 时使用是可以正常用的。ini的读写是论坛上找的。 Public Class INIClass Public inipath As String <DllImport("kernel32")> _ Private Shared Function WritePrivateProfileString(section As String, key As String, val As String, filePath As String) As Long End Function <DllImport("kernel32")> _ Private Shared Function GetPrivateProfileString(section As String, key As String, def As String, retVal As StringBuilder, size As Integer, filePath As String) As Integer End Function \'\'\' <summary> \'\'\' 构造方法 \'\'\' </summary> \'\'\' <param name="INIPath">文件路径</param> Public Sub New(INIPath__1 As String) inipath = INIPath__1 End Sub \'\'\' <summary> \'\'\' 写入INI文件 \'\'\' </summary> \'\'\' <param name="Section">项目名称(如 [TypeName] )</param> \'\'\' <param name="Key">键</param> \'\'\' <param name="Value">值</param> Public Sub IniWriteValue(Section As String, Key As String, Value As String) WritePrivateProfileString(Section, Key, Value, Me.inipath) End Sub \'\'\' <summary> \'\'\' 读出INI文件 \'\'\' </summary> \'\'\' <param name="Section">项目名称(如 [TypeName] )</param> \'\'\' <param name="Key">键</param> Public Function IniReadValue(Section As String, Key As String) As String Dim temp As New StringBuilder(500) Dim i As Integer = GetPrivateProfileString(Section, Key, "", temp, 500, Me.inipath) Return temp.ToString() End Function \'\'\' <summary> \'\'\' 验证文件是否存在 \'\'\' </summary> \'\'\' <returns>布尔值</returns> Public Function ExistINIFile() As Boolean Return System.IO.File.Exists(inipath) End Function End Class Public Function ReadConfig(key As String) As String Dim cfg As new INIClass(ProjectPath & "config.ini") If cfg.ExistINIFile Then Return cfg.IniReadValue("Setting", key) End If End Function Public Function WriteConfig(Key As String, Value As String) As Boolean Dim cfg As new INIClass(ProjectPath & "config.ini") If cfg.ExistINIFile Then cfg.IniWriteValue("Setting",Key, Value) Return True Else Return False End If End Function |
||||||
-- 作者:lyx4040 -- 发布时间:2017/9/27 22:55:00 -- 在 BeforeConnectOuterDataSource 中 MessageBox("ip") \'这不会弹出错误 MessageBox(ReadConfig("ip")) \'调用函数后就会弹出错误,但是这个函数不在BeforeConnectOuterDataSource 中使用时是正常的 e.ConnectionString = xxxxx Data Source=" & ReadConfig("ip") & "\\SQLEXPRESS" ‘正真是这样的,因为使用了ReadConfig("ip") 来读取ip ,所以也会弹出错误 而且 MessageBox 显示的是空白,说明连数据都没有读取到,还是函数调用导致内部出问题了, 所以连后面的 Public multimg As Image = GetImage("docs.png") 也不正常了 现在问题出在哪里,怎么解决? [此贴子已经被作者于2017/9/27 23:24:04编辑过]
|
||||||
-- 作者:有点甜 -- 发布时间:2017/9/27 23:24:00 -- 这种代码有问题
Dim cfg As new INIClass(ProjectPath & "config.ini")
在 BeforeConnectOuterDataSource 事件,不能用红色代码。
你要把 e.ProjectPath 传递过去使用。 |
||||||
-- 作者:lyx4040 -- 发布时间:2017/9/28 0:03:00 -- 问题解决了,问一下,在 BeforeConnectOuterDataSource 中 用什么代码退出程序? |
||||||
-- 作者:有点甜 -- 发布时间:2017/9/28 8:44:00 -- 以下是引用lyx4040在2017/9/28 0:03:00的发言:
问题解决了,问一下,在 BeforeConnectOuterDataSource 中 用什么代码退出程序?
方法一:
方法二:
Dim ps As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("foxtable") |