首页 / C# / C#-数据库连接列表字符串提供程序
C#-数据库连接列表字符串提供程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-数据库连接列表字符串提供程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1895字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试开发具有多个数据库提供程序的dotnet应用程序,我需要了解最常用数据库的ConnectionString和提供程序.我正在使用System.DBCommon.这是我的代码:
public class DBConnector
{
public void ConectDatabase()
{
{
string connectionString =
"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
"(HOST=MYHOST)(PORT=1527))(CONNECT_DATA=(SID=MYSERVICE)));" +
"User Id=MYUSER;Password=MYPASS;"; //Connection String
string provider =
"Oracle.DataAccess.Client.OracleConnection, Oracle.DataAccess"; //I need this for the most used databases (Mysql, PostgreSQL, SqlServer)
using (DbConnection conn = (DbConnection)Activator.
CreateInstance(Type.GetType(provider), connectionString))
{
conn.Open();
string sql =
"select distinct owner from sys.all_objects order by owner";
using (DbCommand comm = conn.CreateCommand())
{
comm.CommandText = sql;
using (DbDataReader rdr = comm.ExecuteReader())
{
while (rdr.Read())
{
string owner = rdr.GetString(0);
Console.WriteLine("{0}", owner);
}
}
}
}
}
}
我在这个网站上找到了连接字符串
https://www.connectionstrings.com/
但是我也需要提供者.
谢谢
解决方法:
连接字符串属性中的提供者名称不是类,而是名称空间,例如System.Data.SqlClient不是类而是名称空间,在该名称空间下您具有SqlConnection,SqlCommand等.
您可以尝试查找实现IDbConnection接口的所有类,然后根据该Type创建一个IDbConnection:
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => typeof(IDbConnection).IsAssignableFrom(p) && p.IsClass);
foreach(var dbConnection in types)
{
Console.WriteLine(dbConnection);
}
安装MySQL和Oracle软件包后,这是结果列表
> System.Data.SqlClient.SqlConnection
> System.Data.OleDb.OleDbConnection
> System.Data.Odbc.OdbcConnection
> System.Data.Common.DbConnection
> MySql.Data.MySqlClient.MySqlConnection
> Oracle.ManagedDataAccess.Client.OracleConnection
内容总结
以上是互联网集市为您收集整理的C#-数据库连接列表字符串提供程序全部内容,希望文章能够帮你解决C#-数据库连接列表字符串提供程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。