【求一解决方案】想让Web程序支持多数据库 InterBase6、SQL Server2000、Oracle9i 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚写了一个mdb与sql2000的.不知对楼主是否有用.using System;using System.Web;using System.Data;using System.Data.SqlClient;using System.Data.OleDb;using System.Text.RegularExpressions;namespace CXH.WebSite.ClassLibrary{ /// <summary> /// 数据库连接类。 /// </summary> public class DBClass { public string dbtype, connstr_mdb, connstr_sql, connstr; public DBClass() { string mdb_path = "\\data\\cxh.mdb"; string sql_host = "localhost"; string sql_uid = "sa"; string sql_pwd = ""; string sql_db = "cxh"; connstr_mdb = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + HttpContext.Current.Server.MapPath(mdb_path); connstr_sql = "server=" + sql_host + ";uid=" + sql_uid + ";pwd=" + sql_pwd + ";database=" + sql_db; connstr = connstr_mdb; } public string DbType { get { return dbtype; } set { switch(dbtype) { case "mdb": dbtype = "mdb"; connstr = connstr_mdb; break; case "sql": dbtype = "sql"; connstr = connstr_sql; break; default: dbtype = "mdb"; connstr = connstr_mdb; break; } } } public bool Exec(string sql) { switch(dbtype) { case "mdb": return Exec_mdb(sql); case "sql": return Exec_sql(sql); default: return Exec_mdb(sql); } } public DataTable Exec_dt(string sql) { switch(dbtype) { case "mdb": return Exec_dt_mdb(sql); case "sql": return Exec_dt_sql(sql); default: return Exec_dt_mdb(sql); } } public OleDbDataReader Exec_dr_mdb(string sql) { OleDbDataReader dr; OleDbConnection conn = new OleDbConnection(connstr); try { conn.Open(); dr = new OleDbCommand(sql, conn).ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); dr = null; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return dr; } public SqlDataReader Exec_dr_sql(string sql) { SqlDataReader dr; SqlConnection conn = new SqlConnection(connstr); try { conn.Open(); dr = new SqlCommand(sql, conn).ExecuteReader(CommandBehavior.CloseConnection); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); dr = null; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return dr; } public bool Into(string tbName, string fields, string[] values) { switch(dbtype) { case "mdb": return Into_mdb(tbName, fields, values); case "sql": return Into_sql(tbName, fields, values); default: return Into_mdb(tbName, fields, values); } } public bool Update(string tbName, string fields, string[] values, string condition) { switch(dbtype) { case "mdb": return Update_mdb(tbName, fields, values, condition); case "sql": return Update_sql(tbName, fields, values, condition); default: return Update_mdb(tbName, fields, values, condition); } } public string GetValue(string sql) { switch(dbtype) { case "mdb": return GetValue_mdb(sql); case "sql": return GetValue_sql(sql); default: return GetValue_mdb(sql); } } private bool Exec_mdb(string sql) { bool flag = false; OleDbConnection conn = new OleDbConnection(connstr); try { conn.Open(); new OleDbCommand(sql, conn).ExecuteNonQuery(); flag = true; } catch (Exception) { flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } private bool Exec_sql(string sql) { bool flag = false; SqlConnection conn = new SqlConnection(connstr); try { conn.Open(); new SqlCommand(sql, conn).ExecuteNonQuery(); flag = true; } catch (Exception) { flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } private DataTable Exec_dt_mdb(string sql) { DataSet dt = new DataSet(); OleDbConnection conn = new OleDbConnection(connstr); try { OleDbDataAdapter da = new OleDbDataAdapter(sql, conn); da.Fill(dt); da.Dispose(); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); } finally { conn.Close(); conn.Dispose(); } return dt.Tables[0]; } private DataTable Exec_dt_sql(string sql) { DataSet dt = new DataSet(); SqlConnection conn = new SqlConnection(connstr); try { SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(dt); da.Dispose(); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); } finally { conn.Close(); conn.Dispose(); } return dt.Tables[0]; } private bool Into_mdb(string tbName, string fields, string[] values) { bool flag = false; string str1 = ""; string str2 = ""; OleDbConnection conn = new OleDbConnection(connstr); try { OleDbCommand myCommand = new OleDbCommand(); for (int i = 0; i < (int)values.Length; i++) { if (i == (int)values.Length - 1) { str1 = String.Concat(str1, "@v", i.ToString()); } else { str1 = String.Concat(str1, "@v", i.ToString(), ","); } myCommand.Parameters.Add(new SqlParameter(String.Concat("@v", i.ToString()), SqlDbType.VarChar, values[i].ToString().Length)); myCommand.Parameters[String.Concat("@v", i.ToString())].Value = values[i].ToString(); } str2 = String.Concat(new string[]{"insert into ", tbName, "(", fields, ")values(", str1, ")"}); conn.Open(); myCommand.Connection = conn; myCommand.CommandText = str2; myCommand.ExecuteNonQuery(); flag = true; } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } private bool Into_sql(string tbName, string fields, string[] values) { bool flag = false; string str1 = ""; string str2 = ""; SqlConnection conn = new SqlConnection(connstr); try { SqlCommand myCommand = new SqlCommand(); for (int i = 0; i < (int)values.Length; i++) { if (i == (int)values.Length - 1) { str1 = String.Concat(str1, "@v", i.ToString()); } else { str1 = String.Concat(str1, "@v", i.ToString(), ","); } myCommand.Parameters.Add(new SqlParameter(String.Concat("@v", i.ToString()), SqlDbType.VarChar, values[i].ToString().Length)); myCommand.Parameters[String.Concat("@v", i.ToString())].Value = values[i].ToString(); } str2 = String.Concat(new string[]{"insert into ", tbName, "(", fields, ")values(", str1, ")"}); conn.Open(); myCommand.Connection = conn; myCommand.CommandText = str2; myCommand.ExecuteNonQuery(); flag = true; } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } public bool Update_mdb(string tbName, string fields, string[] values, string condition) { bool flag = false; string[] strs; string str1 = ""; string str2 = ""; string str3 = ""; OleDbConnection conn = new OleDbConnection(connstr); try { OleDbCommand myCommand = new OleDbCommand(); for (int i = 0; i < (int)fields.Length; i++) { if (i == (int)fields.Length - 1) { str1 = String.Concat(str1, fields[i].ToString(), "=@", fields[i].ToString()); } else { str3 = str1; strs = new string[]{str3, fields[i].ToString(), "=@", fields[i].ToString(), ","}; str1 = String.Concat(strs); } myCommand.Parameters.Add(new SqlParameter(String.Concat("@", fields[i].ToString()), SqlDbType.VarChar, values[i].ToString().Length)); myCommand.Parameters[String.Concat("@", fields[i].ToString())].Value = values[i].ToString(); } strs = new string[]{"UPDATE ", tbName, " SET ", str1, " WHERE ", condition}; str2 = String.Concat(strs); conn.Open(); myCommand.Connection = conn; myCommand.CommandText = str2; myCommand.ExecuteNonQuery(); flag = true; } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } public bool Update_sql(string tbName, string fields, string[] values, string condition) { bool flag = false; string[] strs; string str1 = ""; string str2 = ""; string str3 = ""; SqlConnection conn = new SqlConnection(connstr); try { SqlCommand myCommand = new SqlCommand(); for (int i = 0; i < (int)fields.Length; i++) { if (i == (int)fields.Length - 1) { str1 = String.Concat(str1, fields[i].ToString(), "=@", fields[i].ToString()); } else { str3 = str1; strs = new string[]{str3, fields[i].ToString(), "=@", fields[i].ToString(), ","}; str1 = String.Concat(strs); } myCommand.Parameters.Add(new SqlParameter(String.Concat("@", fields[i].ToString()), SqlDbType.VarChar, values[i].ToString().Length)); myCommand.Parameters[String.Concat("@", fields[i].ToString())].Value = values[i].ToString(); } strs = new string[]{"UPDATE ", tbName, " SET ", str1, " WHERE ", condition}; str2 = String.Concat(strs); conn.Open(); myCommand.Connection = conn; myCommand.CommandText = str2; myCommand.ExecuteNonQuery(); flag = true; } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); flag = false; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return flag; } public string GetValue_mdb(string sql) { string returnValue = null; OleDbConnection conn = new OleDbConnection(connstr); try { conn.Open(); OleDbDataReader dr = new OleDbCommand(sql, conn).ExecuteReader(); if (dr.Read()) { returnValue = dr[0].ToString(); } dr.Close(); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); returnValue = ""; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return returnValue; } public string GetValue_sql(string sql) { string returnValue = null; SqlConnection conn = new SqlConnection(connstr); try { conn.Open(); SqlDataReader dr = new SqlCommand(sql, conn).ExecuteReader(); if (dr.Read()) { returnValue = dr[0].ToString(); } dr.Close(); } catch (Exception e) { HttpContext.Current.Response.Write(e.ToString()); returnValue = ""; } finally { if (conn != null) { conn.Close(); conn.Dispose(); } } return returnValue; } ~DBClass() { try { GC.Collect(); } finally{} } } }} 你可以参考AspNetForum2.0(C#)或者DotNetNuke(VB.NET)的做法,提供两个不同的DataProvider,通过web.config可以轻松配置。 Ext错误 程序找不到存储过程 截取字符串问题? 關于textbox的AutoPostBack(在線等待)急!!! .net怎么两列两行显示? 图片的存取。。。 vs2003 如何控制DataGrid的width WEB窗体自带的cs与一般处理程序ashx的区别 大家都用什么做应用服务器?? 为什么页面载入时会自动执行js方法? 请问高手,用C#.net怎样能与做网页界面的人有效合作? ASP.NET中水晶报表打印!紧急!!
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Text.RegularExpressions;namespace CXH.WebSite.ClassLibrary
{
/// <summary>
/// 数据库连接类。
/// </summary>
public class DBClass
{
public string dbtype, connstr_mdb, connstr_sql, connstr; public DBClass()
{
string mdb_path = "\\data\\cxh.mdb"; string sql_host = "localhost";
string sql_uid = "sa";
string sql_pwd = "";
string sql_db = "cxh"; connstr_mdb = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + HttpContext.Current.Server.MapPath(mdb_path);
connstr_sql = "server=" + sql_host + ";uid=" + sql_uid + ";pwd=" + sql_pwd + ";database=" + sql_db;
connstr = connstr_mdb;
} public string DbType
{
get
{
return dbtype;
} set
{
switch(dbtype)
{
case "mdb":
dbtype = "mdb";
connstr = connstr_mdb;
break; case "sql":
dbtype = "sql";
connstr = connstr_sql;
break; default:
dbtype = "mdb";
connstr = connstr_mdb;
break;
}
}
} public bool Exec(string sql)
{
switch(dbtype)
{
case "mdb":
return Exec_mdb(sql); case "sql":
return Exec_sql(sql); default:
return Exec_mdb(sql);
}
} public DataTable Exec_dt(string sql)
{
switch(dbtype)
{
case "mdb":
return Exec_dt_mdb(sql); case "sql":
return Exec_dt_sql(sql); default:
return Exec_dt_mdb(sql);
}
}
public OleDbDataReader Exec_dr_mdb(string sql)
{
OleDbDataReader dr; OleDbConnection conn = new OleDbConnection(connstr); try
{
conn.Open();
dr = new OleDbCommand(sql, conn).ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
dr = null;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return dr;
} public SqlDataReader Exec_dr_sql(string sql)
{
SqlDataReader dr; SqlConnection conn = new SqlConnection(connstr); try
{
conn.Open();
dr = new SqlCommand(sql, conn).ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
dr = null;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return dr;
} public bool Into(string tbName, string fields, string[] values)
{
switch(dbtype)
{
case "mdb":
return Into_mdb(tbName, fields, values); case "sql":
return Into_sql(tbName, fields, values); default:
return Into_mdb(tbName, fields, values);
}
} public bool Update(string tbName, string fields, string[] values, string condition)
{
switch(dbtype)
{
case "mdb":
return Update_mdb(tbName, fields, values, condition); case "sql":
return Update_sql(tbName, fields, values, condition); default:
return Update_mdb(tbName, fields, values, condition);
}
} public string GetValue(string sql)
{
switch(dbtype)
{
case "mdb":
return GetValue_mdb(sql); case "sql":
return GetValue_sql(sql); default:
return GetValue_mdb(sql);
}
} private bool Exec_mdb(string sql)
{
bool flag = false; OleDbConnection conn = new OleDbConnection(connstr); try
{
conn.Open();
new OleDbCommand(sql, conn).ExecuteNonQuery(); flag = true;
}
catch (Exception)
{
flag = false;
}
finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return flag;
} private bool Exec_sql(string sql)
{
bool flag = false; SqlConnection conn = new SqlConnection(connstr); try
{
conn.Open();
new SqlCommand(sql, conn).ExecuteNonQuery(); flag = true;
}
catch (Exception)
{
flag = false;
}
finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return flag;
} private DataTable Exec_dt_mdb(string sql)
{
DataSet dt = new DataSet();
OleDbConnection conn = new OleDbConnection(connstr); try
{
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
da.Fill(dt);
da.Dispose();
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
}
finally
{
conn.Close();
conn.Dispose();
} return dt.Tables[0];
} private DataTable Exec_dt_sql(string sql)
{
DataSet dt = new DataSet();
SqlConnection conn = new SqlConnection(connstr); try
{
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.Fill(dt);
da.Dispose();
}
catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
}
finally
{
conn.Close();
conn.Dispose();
} return dt.Tables[0];
} private bool Into_mdb(string tbName, string fields, string[] values)
{
bool flag = false;
string str1 = "";
string str2 = ""; OleDbConnection conn = new OleDbConnection(connstr); try
{
OleDbCommand myCommand = new OleDbCommand(); for (int i = 0; i < (int)values.Length; i++)
{
if (i == (int)values.Length - 1)
{
str1 = String.Concat(str1, "@v", i.ToString());
}
else
{
str1 = String.Concat(str1, "@v", i.ToString(), ",");
}
myCommand.Parameters.Add(new SqlParameter(String.Concat("@v", i.ToString()), SqlDbType.VarChar, values[i].ToString().Length));
myCommand.Parameters[String.Concat("@v", i.ToString())].Value = values[i].ToString();
} str2 = String.Concat(new string[]{"insert into ", tbName, "(", fields, ")values(", str1, ")"}); conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = str2;
myCommand.ExecuteNonQuery(); flag = true;
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
flag = false;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return flag; }
{
bool flag = false;
string str1 = "";
string str2 = ""; SqlConnection conn = new SqlConnection(connstr); try
{
SqlCommand myCommand = new SqlCommand(); for (int i = 0; i < (int)values.Length; i++)
{
if (i == (int)values.Length - 1)
{
str1 = String.Concat(str1, "@v", i.ToString());
}
else
{
str1 = String.Concat(str1, "@v", i.ToString(), ",");
}
myCommand.Parameters.Add(new SqlParameter(String.Concat("@v", i.ToString()), SqlDbType.VarChar, values[i].ToString().Length));
myCommand.Parameters[String.Concat("@v", i.ToString())].Value = values[i].ToString();
} str2 = String.Concat(new string[]{"insert into ", tbName, "(", fields, ")values(", str1, ")"}); conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = str2;
myCommand.ExecuteNonQuery(); flag = true;
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
flag = false;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return flag;
} public bool Update_mdb(string tbName, string fields, string[] values, string condition)
{
bool flag = false;
string[] strs;
string str1 = "";
string str2 = "";
string str3 = ""; OleDbConnection conn = new OleDbConnection(connstr); try
{
OleDbCommand myCommand = new OleDbCommand();
for (int i = 0; i < (int)fields.Length; i++)
{
if (i == (int)fields.Length - 1)
{
str1 = String.Concat(str1, fields[i].ToString(), "=@", fields[i].ToString());
}
else
{
str3 = str1;
strs = new string[]{str3, fields[i].ToString(), "=@", fields[i].ToString(), ","};
str1 = String.Concat(strs);
}
myCommand.Parameters.Add(new SqlParameter(String.Concat("@", fields[i].ToString()), SqlDbType.VarChar, values[i].ToString().Length));
myCommand.Parameters[String.Concat("@", fields[i].ToString())].Value = values[i].ToString();
}
strs = new string[]{"UPDATE ", tbName, " SET ", str1, " WHERE ", condition};
str2 = String.Concat(strs);
conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = str2;
myCommand.ExecuteNonQuery(); flag = true;
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
flag = false;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
}
return flag;
} public bool Update_sql(string tbName, string fields, string[] values, string condition)
{
bool flag = false;
string[] strs;
string str1 = "";
string str2 = "";
string str3 = ""; SqlConnection conn = new SqlConnection(connstr); try
{
SqlCommand myCommand = new SqlCommand();
for (int i = 0; i < (int)fields.Length; i++)
{
if (i == (int)fields.Length - 1)
{
str1 = String.Concat(str1, fields[i].ToString(), "=@", fields[i].ToString());
}
else
{
str3 = str1;
strs = new string[]{str3, fields[i].ToString(), "=@", fields[i].ToString(), ","};
str1 = String.Concat(strs);
}
myCommand.Parameters.Add(new SqlParameter(String.Concat("@", fields[i].ToString()), SqlDbType.VarChar, values[i].ToString().Length));
myCommand.Parameters[String.Concat("@", fields[i].ToString())].Value = values[i].ToString();
}
strs = new string[]{"UPDATE ", tbName, " SET ", str1, " WHERE ", condition};
str2 = String.Concat(strs);
conn.Open();
myCommand.Connection = conn;
myCommand.CommandText = str2;
myCommand.ExecuteNonQuery(); flag = true;
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
flag = false;
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
}
return flag;
} public string GetValue_mdb(string sql)
{
string returnValue = null; OleDbConnection conn = new OleDbConnection(connstr); try
{
conn.Open();
OleDbDataReader dr = new OleDbCommand(sql, conn).ExecuteReader(); if (dr.Read())
{
returnValue = dr[0].ToString();
} dr.Close();
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
returnValue = "";
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return returnValue; } public string GetValue_sql(string sql)
{
string returnValue = null; SqlConnection conn = new SqlConnection(connstr); try
{
conn.Open();
SqlDataReader dr = new SqlCommand(sql, conn).ExecuteReader(); if (dr.Read())
{
returnValue = dr[0].ToString();
} dr.Close();
} catch (Exception e)
{
HttpContext.Current.Response.Write(e.ToString());
returnValue = "";
} finally
{
if (conn != null)
{
conn.Close();
conn.Dispose();
}
} return returnValue;
} ~DBClass()
{
try
{
GC.Collect();
}
finally{}
}
} }
}