20份求教类的写法!!

asxulong 2004-11-22 01:05:51
我想把一个数据库的连接字符窜
写到类里调用!怎么写啊?
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huleeyar 2004-11-22
  • 打赏
  • 举报
回复
不要写死在程序中
huleeyar 2004-11-22
  • 打赏
  • 举报
回复
private static string connString;
public static string ConnString
{
get
{
if (null == connString)
{
//connString 的初始话操作,如读配置文件等
}
return connString;
}

}
sonkey 2004-11-22
  • 打赏
  • 举报
回复
例子:
public class After_Service_Info
{
...............
private myConn.myConn myConn = new myConn.myConn();

....................
public bool DeleteInfoToDB()
{
string str_del = "delete from t1 where (编号='" + ID + "')";
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(str_conn);
System.Data.SqlClient.SqlCommand Delete=new System.Data.SqlClient.SqlCommand(str_del,conn);
Delete.Connection.Open();
try
{
Delete.ExecuteNonQuery();
Delete.Connection.Close();
}
catch
{
................
}
}
}

sonkey 2004-11-22
  • 打赏
  • 举报
回复
using System;

namespace myConn
{
/// <summary>
/// Conn 的摘要说明。
/// </summary>
public class myConn
{
private string _ErrString;

/// <summary>
/// 获取错误信息
/// </summary>
public string ErrString
{
get
{
return ErrString;
}
}

/// <summary>
/// Conn类的无参数构造函数
/// </summary>
public myConn()
{
//
// TODO: 在此处添加构造函数逻辑
//
this._ErrString = "";
}

/// <summary>
/// 通过SQL语句返回一个DataTable
/// </summary>
/// <param name="_strConn">连接字符串</param>
/// <param name="_strSql">查询语句</param>
/// <param name="_DataTable">需要返回的Table</param>
/// <returns>如果成功返回true,否则返回false</returns>
public bool GetTable(string _strConn,string _strSql,ref System.Data.DataTable _DataTable)
{
try
{
System.Data.SqlClient.SqlConnection myConn = new System.Data.SqlClient.SqlConnection(_strConn);
System.Data.SqlClient.SqlDataAdapter myAd = new System.Data.SqlClient.SqlDataAdapter(_strSql,myConn);
System.Data.DataSet ds = new System.Data.DataSet();

myAd.Fill(ds,"myTable");
_DataTable = ds.Tables["myTable"];
return true;
}
catch(Exception err)
{
this._ErrString = _strSql + "\n" + err.Message;
return false;
}
}

public bool ExcQuery( string _strConn, string _strSql)
{
System.Data.SqlClient.SqlConnection myConn = new System.Data.SqlClient.SqlConnection();

try
{
myConn.ConnectionString = _strConn;
myConn.Open();
System.Data.SqlClient.SqlCommand myComm = new System.Data.SqlClient.SqlCommand(_strSql, myConn);
myComm.ExecuteNonQuery();
myConn.Close();
return true;
}
catch (Exception err)
{
_ErrString = _strSql + "\n" + err.Message;
// _ErrString = htmlchangechar(_ErrString);
return false;
}
}
}
}
layershow 2004-11-22
  • 打赏
  • 举报
回复
public class DBClass
{
private static string strDBCon;
public static string ConnectionString
{
get{return strDBCon;}
set{strDBCon = value;}
}
}


是要这样写么?
DBClass.ConnectionString
zwx963536 2004-11-22
  • 打赏
  • 举报
回复

/// <summary>
/// 检查记录是否存在于数据库 如果有错误将返回Error
/// </summary>
/// <param name="sql"></param>
/// <returns>返回一个扩展Bool类型值</returns>
public virtual BoolResult RsExists(string sql)
{
if (m_Conn.State != ConnectionState.Open)
{
return BoolResult.Error;
}

try
{
SqlCommand cmd = new SqlCommand(sql,m_Conn);
object ob = cmd.ExecuteScalar();
if (ob != null)
{
return BoolResult.True;
}
else
{
return BoolResult.False;
}
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return BoolResult.Error;
}
}


/// <summary>
/// 测试数据库连接
/// </summary>
/// <param name="server">服务器名称</param>
/// <param name="uid">登录UID</param>
/// <param name="pwd">登录密码</param>
/// <param name="dbname">数据库名称</param>
/// <param name="errInfo">返回一个错语字符串,如果有错语的话</param>
/// <returns>连接成功能返回true,否之返回false</returns>
public static bool TestConnect(string server,string uid,string pwd,string dbname,out string errInfo)
{
string strConn;
bool result;

strConn = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=" + dbname;
strConn += ";Connect Timeout=" + SQLConnectTimeout;

SqlConnection conn = new SqlConnection();
conn.ConnectionString = strConn;
try
{
conn.Open();
errInfo = "";
result = true;
}
catch(SqlException e)
{
errInfo = " " + e.Message;
result = false;
}
finally
{
if(conn.State == ConnectionState.Open)
conn.Close();
}
return result;
}


/// <summary>
/// 测试数据库连接 此方法使用默认数据库master等录服务器
/// </summary>
/// <param name="server">服务器名称</param>
/// <param name="uid">登录UID</param>
/// <param name="pwd">登录密码</param>
/// <param name="errInfo">返回一个错语字符串,如果有错语的话</param>
/// <returns>连接成功能返回true,否之返回false</returns>
public static bool TestConnect(string server,string uid,string pwd,out string errInfo)
{
string strConn;
bool result;

strConn = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=";
strConn += DefaultDBName + ";Connect Timeout=" + SQLConnectTimeout;

SqlConnection conn = new SqlConnection();
conn.ConnectionString = strConn;
try
{
conn.Open();
errInfo = "";
result = true;
}
catch(SqlException e)
{
errInfo = " " + e.Message;
result = false;
}
finally
{
if(conn.State == ConnectionState.Open)
conn.Close();
}
return result;
}


/// <summary>
/// 关闭当前数据库连接
/// </summary>
public virtual void Close()
{
if (m_Conn != null)
{
if(m_Conn.State == ConnectionState.Open)
{
m_Conn.Close();
}
}
}

/// <summary>
/// 获取执行数据库操作所产生的错误消息
/// </summary>
public virtual string GetErrorMsg
{
get
{
if (m_ErrorMsg == null)
{
m_ErrorMsg = "";
}
return m_ErrorMsg;
}
}

/// <summary>
/// 设置数据库连接参数文件路径 此文件为一个XML文件
/// </summary>
public virtual string DBConfigFile
{
set
{
m_DBConfigFile = value;
}
}

/// <summary>
/// 读取XML配置文件中的参数
/// </summary>
/// <returns>读取成功返回true,反之返回false</returns>
public virtual bool ReadXMLConfig()
{
string servername,uid,pwd,dbname;

if (m_DBConfigFile == null)
return false;
if (!SysUtil.FileExists(m_DBConfigFile))
return false;

if (!SysUtil.ReadXml(m_DBConfigFile,XMLRoot,NodeServerName,out servername))
return false;
if (!SysUtil.ReadXml(m_DBConfigFile,XMLRoot,NodeUID,out uid))
return false;
if (!SysUtil.ReadXml(m_DBConfigFile,XMLRoot,NodePWD,out pwd))
return false;
if (!SysUtil.ReadXml(m_DBConfigFile,XMLRoot,NodeDBName,out dbname))
return false;

m_strConnection = "server=" + servername + ";uid=" + uid + ";pwd=" + pwd + ";database=";
m_strConnection += dbname + ";Connect Timeout=" + SQLConnectTimeout;
return true;
}

/// <summary>
/// 写数据库连接参数配置文件
/// </summary>
/// <param name="servername">服务器名称</param>
/// <param name="uid">登录用户名</param>
/// <param name="pwd">登录密码</param>
/// <param name="dbname">数据库名称</param>
/// <returns>写成功返回true 反之返回false</returns>
public virtual bool WriteXMLConfig(string servername,string uid,string pwd,string dbname)
{
if (m_DBConfigFile == null)
return false;

string [,] arrNode =new string[4,2];
arrNode[0,0] = NodeServerName;
arrNode[0,1] = servername;
arrNode[1,0] = NodeDBName;
arrNode[1,1] = dbname;
arrNode[2,0] = NodeUID;
arrNode[2,1] = uid;
arrNode[3,0] = NodePWD;
arrNode[3,1] = pwd;

if (SysUtil.WriteXML(m_DBConfigFile,XMLRoot,arrNode))
{
m_strConnection = "server=" + servername + ";uid=" + uid + ";pwd=" + pwd + ";database=";
m_strConnection += dbname + ";Connect Timeout=" + SQLConnectTimeout;
return true;
}
else
{
return false;
}
}


/// <summary>
/// 执行SELECT语句,返回DataSet对象
/// </summary>
/// <param name="sql">要执行的SELECT语句</param>
/// <returns></returns>
public virtual DataSet GetDataSet(string sql)
{

if (m_Conn.State != ConnectionState.Open)
{
return null;
}

try
{
SqlDataAdapter ad = new SqlDataAdapter(sql,m_Conn);
DataSet ds = new DataSet();
ad.Fill(ds);

return ds;
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return null;
}
}
}
}
zwx963536 2004-11-22
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Diagnostics;

namespace CDKSoft.Common.Utility
{

#region 枚举、常数定义代码
/// <summary>
/// 扩展的Bool类型 True、False、Error
/// </summary>
[Serializable()]
public enum BoolResult
{
/// <summary>
/// 返回True:1
/// </summary>
True = 1,
/// <summary>
/// 返回False:2
/// </summary>
False = 2,
/// <summary>
/// 返回Error:3
/// </summary>
Error = 3
}


#endregion

/// <version>
/// <created number="1.00" date="2004.10.29" by="陈大凯"></created>
/// </version>
/// <summary>
/// 提供通用的数据库访问功能
/// </summary>
public class DBUtil
{
protected const string DefaultDBName = "master";
protected const int SQLConnectTimeout = 30;

protected const string XMLRoot = "DBConfig";
protected const string NodeServerName = "ServerName";
protected const string NodeUID = "UID";
protected const string NodePWD = "PWD";
protected const string NodeDBName = "DBName";

protected SqlConnection m_Conn;
protected string m_strConnection;
protected string m_ErrorMsg;
protected string m_DBConfigFile;

/// <summary>
/// 构造函数
/// </summary>
public DBUtil()
{
m_Conn = new SqlConnection();
}

/// <summary>
/// 重载构造函数
/// </summary>
/// <param name="server">服务器名称</param>
/// <param name="dbname">数据库名称</param>
/// <param name="uid">登录UID</param>
/// <param name="pwd">登录密码</param>
public DBUtil(string server,string dbname,string uid,string pwd)
{
m_strConnection = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=" + dbname;
m_strConnection += ";Connect Timeout=" + SQLConnectTimeout;

m_Conn = new SqlConnection();
m_Conn.ConnectionString = m_strConnection;
}

/// <summary>
/// 获取一个当前数据库连接
/// </summary>
public SqlConnection Conn
{
get
{
return m_Conn;
}
}


/// <summary>
/// 执行数据库连接
/// </summary>
/// <returns>连接成功能返回true,否之返回false</returns>
public virtual bool Connect()
{
try
{
m_Conn.ConnectionString = m_strConnection;
m_Conn.Open();
return true;
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return false;
}
}



/// <summary>
/// 执行数据库连接 此方法使用默认数据库master等录服务器
/// </summary>
/// <param name="server">服务器名称</param>
/// <param name="uid">登录UID</param>
/// <param name="pwd">登录密码</param>
/// <returns>连接成功能返回true,否之返回false</returns>
public virtual bool Connect(string server,string uid,string pwd)
{
m_strConnection = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=";
m_strConnection += DefaultDBName + ";Connect Timeout=" + SQLConnectTimeout;

m_Conn.ConnectionString = m_strConnection;
try
{
m_Conn.Open();
return true;
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return false;
}
}


/// <summary>
/// 执行数据库连接
/// </summary>
/// <param name="server">服务器名称</param>
/// <param name="dbname">数据库名称</param>
/// <param name="uid">登录UID</param>
/// <param name="pwd">登录密码</param>
/// <returns>连接成功能返回true,否之返回false</returns>
public virtual bool Connect(string server,string dbname,string uid,string pwd)
{
m_strConnection = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=" + dbname;
m_strConnection += ";Connect Timeout=" + SQLConnectTimeout;

m_Conn.ConnectionString = m_strConnection;
try
{
m_Conn.Open();
return true;
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return false;
}
}


/// <summary>
/// 执行一个Transact-SQL语句,并返回所影响的行数或返回代码
/// </summary>
/// <param name="sql">Transact-SQL语句</param>
/// <returns>并返回所影响的行数</returns>
public virtual int ExecuteSQL(string sql)
{
int result = 0;

if (m_Conn.State == ConnectionState.Open)
{
SqlCommand cmd = new SqlCommand(sql,m_Conn);
cmd.CommandTimeout = 300;

try
{
result = cmd.ExecuteNonQuery();
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
}
}
return result;
}


/// <summary>
/// 批执行Transact-SQL语句,返回执行状态
/// </summary>
/// <param name="tc">TransactSQL语句集合对象</param>
/// <returns>执行完成返回true,反之返回False</returns>
public virtual bool ExecuteSQL(TransactSQLCollection tc)
{
bool result = false;
if (m_Conn.State == ConnectionState.Open)
{
SqlTransaction Trans = m_Conn.BeginTransaction();

SqlCommand cmd = m_Conn.CreateCommand();
cmd.Connection = m_Conn;
cmd.Transaction = Trans;

cmd.CommandTimeout = 300;

try
{
for(int i=0;i<tc.Count;i++)
{
cmd.CommandText = tc[i].SQLString;
cmd.ExecuteNonQuery();
}
Trans.Commit();
result = true;
}
catch(SqlException e)
{
Trans.Rollback();
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
}
}
return result;
}


/// <summary>
/// 执行一个Transact-SQL语句,并返回所影响的行数或返回代码 此方法加入了事务
/// </summary>
/// <param name="arrNode">SQL语句数组</param>
/// <returns>执行成功返回1,返之返回0</returns>
public virtual int ExecuteSQL(string[] arrNode)
{
int result = 0;
if (m_Conn.State == ConnectionState.Open)
{
SqlTransaction Trans = m_Conn.BeginTransaction();

SqlCommand cmd = m_Conn.CreateCommand();
cmd.Connection = m_Conn;
cmd.Transaction = Trans;

cmd.CommandTimeout = 300;

try
{
for(int i=0;i<=arrNode.GetUpperBound(0);i++)
{
cmd.CommandText = arrNode[i];
cmd.ExecuteNonQuery();
}
Trans.Commit();
result = 1;
}
catch(SqlException e)
{
Trans.Rollback();
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
}
}
return result;
}


/// <summary>
/// 执行一条 SELECT 语句,返回第一行第一列的值
/// </summary>
/// <param name="sql">select语句</param>
/// <returns>返回第一行第一列的值</returns>
public virtual object ExecuteScalar(string sql)
{
if (m_Conn.State != ConnectionState.Open)
{
return null;
}

try
{
SqlCommand cmd = new SqlCommand(sql,m_Conn);
object ob = cmd.ExecuteScalar();
return ob;
}
catch(SqlException e)
{
m_ErrorMsg = e.Message;
SysUtil.WriteErrorLog(System.Reflection.MethodBase.GetCurrentMethod(),e);
return null;
}

}

niaoren 2004-11-22
  • 打赏
  • 举报
回复
写个静态方法就可以了
public class Configuration
{
private static string connectionString = "data source=192.168.0.1;initial catalog=db;user id=sa;password=sa";
public Configuration(){}
public static string ConnectionString
{
get{return connectionString;}
}
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧