Foxtable(狐表)用户栏目专家坐堂 → 未将对象引用设置到对象的实例(数据库连接组件,支持MySql)


  共有3915人关注过本帖树形打印复制链接

主题:未将对象引用设置到对象的实例(数据库连接组件,支持MySql)

帅哥哟,离线,有人找我吗?
zhchling
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
未将对象引用设置到对象的实例(数据库连接组件,支持MySql)  发帖心情 Post By:2022/3/20 6:24:00 [只看该作者]


http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=159738&replyID=&skin=1





学习上面的实例时,

HySql.dll复制到foxtable的安装目录,并且引用了。
使用例子里的access,
配置文件config.json 手工设置配置文件里的数据库路径

在项目AfterOpenProject事件初始化设置配置文件目录:

HySql.DB.ConfigPath = ProjectPath


上面步骤都检查了


窗口按钮单击的代码,第一行 代码: Dim db = HySql.DataBaseFactory.CreateDatabase() 

就提示以下错误。



.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。



看了帮助,还是搞不明白,前来请教。


图片点击可在新窗口打开查看此主题相关图片如下:ls截图.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/20 20:20:00 [只看该作者]

我下载测试没有问题。

数据库放在哪里?路径是什么?
config.json文件改了什么地方?贴出来看看

 回到顶部
帅哥哟,离线,有人找我吗?
zhchling
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2022/3/21 1:03:00 [只看该作者]

{
    "dbSettings": {
    "defaultConnection": "acc01",
    "connectionStrings": [
      {
        "name": "acc01",
        "type": "access",
        "connectionString": "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\foxtable开发\下载程序\数据库组件20210114\测试项目\123.mdb;Persist Security Info=False"
      }
    ]
  }

}




}
图片点击可在新窗口打开查看此主题相关图片如下:ls截图.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
zhchling
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2022/3/21 1:18:00 [只看该作者]

把 123.mdb 移动到D盘根目录,修改config.json的内容为相应路径。 测试好使了。


问题1 :放在多层文件夹里,路径没有发现有错。   是写的有错?还是路径里面有中文字符?


转而测试远程mysql,  又发现上述的错误提示。


config.json 内容如下:

{  
  "dbSettings": {  
    "defaultConnection": "shouji",  
    "connectionStrings": [  

      {  
        "name": "shouji",  
        "type": "mysql",  
        "connectionString": "server=IP地址;user id=shouji;password=数据库密码;database=shouji;sslmode=none"  
      },  
    ]  
  }  


问题2:mysql的连接字符串应该是写错了,  foxtable里用到的mysql连接字符串怎么写?去哪里学习?




[此贴子已经被作者于2022/3/21 1:59:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/21 8:29:00 [只看该作者]

1、需要2个斜杆
"connectionString": "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\foxtable开发\\下载程序\\数据库组件20210114\\测试项目\123.mdb;Persist Security Info=False"

2、各种数据库的连接字符串网上搜索,大把的

 回到顶部
帅哥哟,离线,有人找我吗?
zhchling
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2022/3/21 21:11:00 [只看该作者]

1. 为什么要用两个斜杠?是因为汉字路径?
2. 百度找MYSQL的连接字符串,一大堆,不知道怎么去找。

是哪种环境?  这个数据库组件配置文件用的是什么语法? 在百度上用什么关键字搜?
[此贴子已经被作者于2022/3/21 21:35:11编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/21 21:18:00 [只看该作者]

1、这玩意您得问微软,我解释不了
2、数据库的链接字符串正常都是数据库提供和规定的,不管什么环境和语言用法应该都一样。Foxtable是基于.net的。可以搜.net使用的,或者搜c#,例子更多一点

 回到顶部
帅哥哟,离线,有人找我吗?
zhchling
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2022/3/21 21:48:00 [只看该作者]

MySql链接字符串 各种程序连接大合集(包括asp.net,c#,等等)

一、MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式

1、本地数据库连接Driver={MySQL};Server=localhost;Option=16834;Database=myDataBase;

2、远程数据连接Driver={MySQL};Server=myServerAddress;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;

3、特殊的TCP/IP端口连接说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接MySQL的3306端口。Driver={MySQL};Server=myServerAddress;Port=3306;Option=131072;Stmt=;Database=myDataBase; User=myUsername;Password=myPassword;

二、MySQL Connector/ODBC 3.51 (MyODBC 3.51)连接方式

1、本地数据库连接Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;

2、远程数据连接Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

3、特殊的TCP/IP端口连接说明:此Driver的默认端口是3306。如果没有在连接字符串中特别指出就是连接MySQL的3306端口。Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

4、特殊字符集的连接Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;charset=UTF8;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;

三、OLE DB, OleDbConnection (.NET)连接方式1、标准连接Provider=MySQLProv;Data Source=mydb;User Id=myUsername;Password=myPassword;

四、MySQL Connector/Net (.NET)连接方式

1、标准连接(说明,默认端口是3306。)Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

2、特殊的TCP/IP端口连接Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

3、命名管道说明:端口值为-1,说明用命名管道方式连接。此方式只在Windows下有效,在UNIX下用会被忽略。Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

4、多服务器连接用此种方式连接到数据库中,不必担心该使用哪个数据库。

Server=serverAddress1 & serverAddress2 & etc..;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

5、加密选项这条活动的SSL连接加密所有客户端和服务器商的数据传输。而且服务器要有一个证书。这个选项从Connector/NET5.0.3版开始出现,以前的版本中则没有此功能。

Server=myServerAddress;Port=-1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

6、修改默认的命令超时时间使用这条修改连接的默认命令超时时间。注意:此条不会影响你在单独命令对象上设置的超时时间。此条只对Connector/NET 5.1.4 及以上的版本有效.

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;default command timeout=20;

7、修改连接偿试时间使用这条修改在终止重试和接收错误的等待时间(以秒为单位)

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Connection Timeout=5;

8、Inactivating prepared statementsUse this one to instruct the provider to ignore any command prepare statements and prevent corruption issues with server side prepared statements.此选项被加入到Connector/NET的5.0.3版和1.0.9版。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Ignore Prepare=true;

9、特殊的TCP/IP端口连接这条语句修改连接的端口。默认端口是3306。此参数会被Unix忽略。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Port=3306;

10、特殊网络协议这条语句修改用哪种协议进行连接。如果没有特别说明,"socket"是默认的值。"tcp"是与"socket"相同意义的。"pipe"是使用命名管道连接,"unix"是使用 unix socket连接,"memory"是使用MySQL的共享内存。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Protocol=socket;

11、特殊字符集的连接这个语句指出以使种字符串编码发送到服务器上的查询语句。注意:查询结果仍然是以反回数据的格式传送。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet=UTF8;

12、修改共享内存名此语句用来修改用来通信的共享内存名称。说明:此语句只有当连接协议设置为"memory"时才有效。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;Shared Memory Name=MySQL;

五、MySQLConnection (.NET)连接方式

1、eInfoDesigns.dbProvider

Data Source=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Command Logging=false;

六、SevenObjects MySQLClient (.NET)连接方式

1、标准连接

Host=myServerAddress;UserName=myUsername;Password=myPassword;Database=myDataBase;

七、Core Labs MySQLDirect (.NET)连接方式

1、标准连接

User ID=root;Password=myPassword;Host=localhost;Port=3306;Database=myDataBase; Direct=true;Protocol=TCP;Compress=false;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;

 
[此贴子已经被作者于2022/3/21 21:49:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107880 积分:548763 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/21 22:11:00 [只看该作者]

foxtable使用的是OleDb,按照OleDb的方式使用即可。

配置文件config.json里面也有例子,改为自己的ip,数据库名称,端口和用户密码

 回到顶部
帅哥哟,离线,有人找我吗?
zhchling
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:385 积分:3893 威望:0 精华:0 注册:2012/2/9 20:09:00
  发帖心情 Post By:2022/3/21 22:26:00 [只看该作者]

config.json  改成以下内容

{
    "dbSettings": {
    "defaultConnection": "moyu_phome",
    "connectionStrings": [
      {
        "name": "moyu_phome",
        "type": "mysql",
        "connectionString": "Server=IP;Database=moyu_phome;uid=moyu_phome;pwd=密码;Charset=utf8"
      }
    ]
  }

}



提示以下错误


.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.1.30.2
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
未能加载文件或程序集“MySql.Data, Version=6.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。系统找不到指定的文件。



 回到顶部
总数 11 1 2 下一页