C#强类型数据集的多数据库应用
2014-01-08 08:46
399 查看
之前项目有人提出用强类型数据集会比较好用,因为XXXX(各种优点,详情百度),后来遇到一些当时无法解决的问题则没有再去研究。
问题1:VS2010中的数据连接没有找到mysql的数据连接选项
问题2:如何在不使用强类型数据集自带的connection在两个数据库或者多个数据库中动态切换。
今日研究了一下 找到了解决办法
问题1解法:下载mysql驱动 mysql官网驱动下载(var:vs2010连接mysql数据库)
安装之后VS就会出现mysql选项
问题2思路:通过从服务器资源管理器拖动数据库表格到数据集后 生成了强类型数据集,例如DS_rfid_secure_sqlserver.xsd下有表格叫做loginhistory如图
其中的connection属性是可以修改的
但问题在于 拖动sql数据库的connection类型是System.Data.SqlClient.SqlConnection
拖动mysql数据库的connection类型是MySql.Data.MySqlClient.MySqlConnection
所以暂时找到的解决办法为:
1为同一个数据库新建两个xsd文件 一个是sqlserver,一个是mysql
2为两个xsd添加同一个名字的查询函数
3使用这个查询函数之前运行如下代码
public static string dbstroon1;//数据库连接字符串
public static string dbtype1;//数据库类型SQLServer或者MySQL
object loginhistoryAdapter;//弱类型的适配器
public loginhistory()
{
if (dbtype1 == "SQLServer")
{
DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter aa = new DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter();
aa.Connection = new System.Data.SqlClient.SqlConnection(dbstroon1);
loginhistoryAdapter = aa;
}
if (dbtype1 == "MySQL")
{
DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter aa = new DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter();
aa.Connection = new MySql.Data.MySqlClient.MySqlConnection(dbstroon1);
loginhistoryAdapter = aa;
}
}
4使用查询函数时(假设查询语句为add(DateTime nowtime,string loginLocation,string LoginUserID,string
Descripe))
if (dbtype1 == "SQLServer")
{
((DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter)loginhistoryAdapter).Insert(nowtime, loginLocation, LoginUserID, Descripe) ;
}
if (dbtype1 == "MySQL")
{
((DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter)loginhistoryAdapter).Insert(nowtime, loginLocation, LoginUserID, Descripe);
}
这样就可以做到强类型的多数据库应用
问题1:VS2010中的数据连接没有找到mysql的数据连接选项
问题2:如何在不使用强类型数据集自带的connection在两个数据库或者多个数据库中动态切换。
今日研究了一下 找到了解决办法
问题1解法:下载mysql驱动 mysql官网驱动下载(var:vs2010连接mysql数据库)
安装之后VS就会出现mysql选项
问题2思路:通过从服务器资源管理器拖动数据库表格到数据集后 生成了强类型数据集,例如DS_rfid_secure_sqlserver.xsd下有表格叫做loginhistory如图
其中的connection属性是可以修改的
但问题在于 拖动sql数据库的connection类型是System.Data.SqlClient.SqlConnection
拖动mysql数据库的connection类型是MySql.Data.MySqlClient.MySqlConnection
所以暂时找到的解决办法为:
1为同一个数据库新建两个xsd文件 一个是sqlserver,一个是mysql
2为两个xsd添加同一个名字的查询函数
3使用这个查询函数之前运行如下代码
public static string dbstroon1;//数据库连接字符串
public static string dbtype1;//数据库类型SQLServer或者MySQL
object loginhistoryAdapter;//弱类型的适配器
public loginhistory()
{
if (dbtype1 == "SQLServer")
{
DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter aa = new DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter();
aa.Connection = new System.Data.SqlClient.SqlConnection(dbstroon1);
loginhistoryAdapter = aa;
}
if (dbtype1 == "MySQL")
{
DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter aa = new DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter();
aa.Connection = new MySql.Data.MySqlClient.MySqlConnection(dbstroon1);
loginhistoryAdapter = aa;
}
}
4使用查询函数时(假设查询语句为add(DateTime nowtime,string loginLocation,string LoginUserID,string
Descripe))
if (dbtype1 == "SQLServer")
{
((DS_rfid_secure_sqlserverTableAdapters.loginhistoryTableAdapter)loginhistoryAdapter).Insert(nowtime, loginLocation, LoginUserID, Descripe) ;
}
if (dbtype1 == "MySQL")
{
((DS_rfid_secure_mysqlTableAdapters.loginhistoryTableAdapter)loginhistoryAdapter).Insert(nowtime, loginLocation, LoginUserID, Descripe);
}
这样就可以做到强类型的多数据库应用
相关文章推荐
- C#程序值类型与数据库值类型对应关系
- 数据库应用类型
- C#上传byte类型图片到数据库
- C#匿名类型的的实际应用
- 基于C#的MongoDB数据库开发应用(4)--Redis的安装及使用
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
- 开始学习C#数据库应用编程
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
- C# 操作 XML 数据库类型、Oracle XMLType
- C# 读取 timestamp 时间戳 值为byte[] 类型时,需要转换成 16进制的字符串 和 数据库中的时间戳值进行比对
- 数据库中与C#中的数据类型对照
- C#中时间类型的应用
- 数据库中字段类型对应的C#中的数据类型
- 数据库中的bigint 类型对应C# 中的long 类型
- 使用 Visual C# .NET 从数据集对象更新数据库
- C#中如何将datetime类型不设定实始值,只存到数据库中为空
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- SQL Server 2000 元数据应用(三):获得数据库中存储过程的参数和数据集字段
- C# 中字符串“1.0”和数据库中char(10)类型的字段值“1.0”比较。
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集