C#VS2010连接数据库大全(一)

2014-11-24 03:31:05 · 作者: · 浏览: 22

C#VS2010连接数据库大全

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Data.OracleClient;
using System.Data.OleDb;


namespace SystemFramework
{
public class DataBaseLayer
{
private string connectionString;
private string dbType;

public string DbType
{
get { return dbType; }
set { dbType = value; }
}


public string ConnectionString
{
get
{
if (dbType == string.Empty || dbType == null)
{
return "Access";
}
else
{
return dbType;
}
}
set
{
if (value != string.Empty && value != null)
{
dbType = value;
}
if (dbType == string.Empty || dbType == null)
{
dbType = ConfigurationSettings.AppSettings["DataType"];
}
if (dbType == string.Empty || dbType == null)
{
dbType = "Access";
}
}
}


public DataBaseLayer(string strConnect, string dataType)
{
this.connectionString = strConnect;
this.DbType = dataType;
}

#region 转换参数
private System.Data.IDbDataParameter iDbPara(string ParaName, string DataType)
{
switch (this.DbType)
{
case "SqlServer":
return GetSqlPara(ParaName, DataType);

case "Oracle":
return GetOleDbPara(ParaName, DataType);

case "Access":
return GetOleDbPara(ParaName, DataType);

default:
return GetSqlPara(ParaName, DataType);

}
}

private System.Data.SqlClient.SqlParameter GetSqlPara(string ParaName, string DataType)
{
switch (DataType)
{
case "Decimal":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.Decimal);
case "Varchar":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.VarChar);
case "DateTime":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.DateTime);
case "Iamge":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.Image);
case "Int":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.Int);
case "Text":
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.NText);
default:
return new System.Data.SqlClient.SqlParameter(ParaName, System.Data.SqlDbType.VarChar);
}
}

private System.Data.OracleClient.OracleParameter GetOraclePara(string ParaName, string DataType)
{
switch (DataType)
{
case "Decimal":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.Double);

case "Varchar":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.VarChar);

case "DateTime":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.DateTime);

case "Iamge":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.BFile);

case "Int":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.Int32);

case "Text":
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.LongVarChar);

default:
return new System.Data.OracleClient.OracleParameter(ParaName, System.Data.OracleClient.OracleType.VarChar);

}
}

private System.Data.OleDb.OleDbParameter GetOleDbPara(string ParaName, string DataType)
{
switch (DataType)
{
case "Decimal":
return new System.Data.OleDb.OleDbParameter(ParaName,