您的位置:首页 > 数据库

封装的ADO.NET对数据库操作经典类 [更新]

2006-05-05 15:33 627 查看
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Runtime.Remoting.Messaging;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace LTP.SQLServerDAL
{
/// <summary>
/// ADO.NET数据库操作基础类。
/// </summary>
public abstract class DbManagerSQL
{
//数据库连接字符串
protected static string connectionString = ConfigurationSettings.AppSettings["ConnectionString"];
public DbManagerSQL()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString"></param>
/// <returns></returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString,connection))
{
try
{
connection.Open();
int rows=cmd.ExecuteNonQuery();
return rows;
}
catch(System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
}
}
}
/// <summary>
/// 执行两条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLString1"></param>
/// <param name="SQLString2"></param>
public static void ExecuteSqlTran(string SQLString1,string SQLString2)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=connection;
SqlTransaction tx=connection.BeginTransaction();
cmd.Transaction=tx;
try
{
cmd.CommandText=SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText=SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务,每条语句以“;”分割。
/// </summary>
/// <param name="SQLStringList"></param>
public static void ExecuteSqlTran(string SQLStringList)
{
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection=conn;
OdbcTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
string [] split= SQLStringList.Split(new Char [] { ';'});
foreach (string strsql in split)
{
if (strsql.Trim()!="")
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch(System.Data.Odbc.OdbcException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
/// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="SQLString"></param>
/// <param name="content"></param>
/// <returns></returns>
public static int ExecuteSql(string SQLString,string content)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString,connection);
System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter ( "@content", SqlDbType.NText);
myParameter.Value = content ;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int rows=cmd.ExecuteNonQuery();
return rows;
}
catch(System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 向数据库里插入图像格式的字段
/// </summary>
/// <param name="strSQL"></param>
/// <param name="fs"></param>
/// <returns></returns>
public static int ExecuteSqlInsertImg(string strSQL,byte[] fs)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(strSQL,connection);
System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter ( "@fs", SqlDbType.Image);
myParameter.Value = fs ;
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
int rows=cmd.ExecuteNonQuery();
return rows;
}
catch(System.Data.SqlClient.SqlException E)
{
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}

}
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(整数)。
/// </summary>
/// <param name="strSQL"></param>
/// <returns></returns>
public static int GetCount(string strSQL)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(strSQL,connection);
try
{
connection.Open();
SqlDataReader result = cmd.ExecuteReader();
int i=0;
while(result.Read())
{
i=result.GetInt32(0);
}
result.Close();
return i;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString"></param>
/// <returns></returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString,connection);
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 执行查询语句,返回SqlDataReader
/// </summary>
/// <param name="strSQL"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string strSQL)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(strSQL,connection);
SqlDataReader myReader;
try
{
connection.Open();
myReader = cmd.ExecuteReader();
return myReader;
}
catch(System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
connection.Close();
}
}
}
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString"></param>
/// <returns></returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString,connection);
command.Fill(ds,"ds");
}
catch(System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}

}

#region 存储过程操作

/// <summary>
/// 运行存储过程
/// </summary>
/// <param name="storedProcName"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataReader returnReader;
connection.Open();
SqlCommand command = BuildQueryCommand( connection,storedProcName, parameters );
command.CommandType = CommandType.StoredProcedure;

returnReader = command.ExecuteReader();
//Connection.Close();
return returnReader;
}
}
private static SqlCommand BuildQueryCommand(SqlConnection connection,string storedProcName, IDataParameter[] parameters)
{

SqlCommand command = new SqlCommand( storedProcName, connection );
command.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
return command;

}
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
sqlDA.Fill( dataSet, tableName );
connection.Close();

return dataSet;
}
}

#endregion
}
}

--------------------------------------------------------------------------------------------------------------------------------

//这是我更新的一个版本,与上面可以说变化相当大

//其中FlashGateway是Flash Remoting的一个dll大家可以去掉相关代码,不影响使用

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using mvi.sysmanage;
using FlashGateway.IO;

namespace mvi.dbaccess
{
#region class sqlcom
/// <summary>
/// sqlcom
/// </summary>
public class sqlCom
{
//FLASHSRV/HIPIHI
//private string DBCnStr = @"Data Source=FLASHSRV;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=1";

private string DBCnStr = @"Data Source=mvi-dpe;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=mvi";

public sqlCom()
{
//DBCnStr = @"Data Source=FLASHSRV;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=1";
DBCnStr = @"Data Source=mvi-dpe;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=mvi";
}

public sqlCom(string connectstring)
{
if (connectstring.Length > 1)
{
DBCnStr = connectstring;
}
}

public string SQLCnStr
{
get
{
return DBCnStr;
}
set
{
DBCnStr = value;
}
}

#region InitSqlConnection 初始化Sql连接字符串
/// <summary>
/// 初始化Sql连接字符串
/// </summary>
/// <param name="DBCnStr">传入的dbconnection</param>
/// <param name="cmdText">传入的cmd text</param>
/// <returns>sql server connection string</returns>
private string InitSqlConnection(string DBCnStr, string cmdText)
{
// temp code
return DBCnStr;

//// final code
//int iD = DBCnStr.IndexOf("Data Source=");
//int iL = DBCnStr.Substring(iD + 12).Split(';')[0].Length;
//string strSqlServerName = DBCnStr.Substring(iD + 12, iL);
//string strNewSqlServerName = GetSqlServerName(cmdText);
//return DBCnStr.Replace(strSqlServerName, strNewSqlServerName);
}
#endregion

#region GetSqlServerName 由sql string 获取数据库服务器名
/// <summary>
/// 由sql string 获取sql server name
/// </summary>
/// <param name="cmdText">传入的cmd text</param>
/// <returns>sql server name</returns>
private string GetSqlServerName(string cmdText)
{
return cmdText.Substring(cmdText.IndexOf("from") + 5).Split('.')[0].ToString();
}
#endregion

# region GetDataSet 通过执行SQL语句返回一个状态
/// <summary>
/// 通过执行SQL语句返回一个状态
/// </summary>
/// <param name="cmdText">“SQL 文本”</param>
/// <param name="oCn">"连接对象"</param>
/// <param name="oDs">"引用的DataSet它将在程序中改变内容"</param>
/// <returns>"成功则返回0,否则返回错误代码"</returns>
public int GetDataSet(string cmdText, ref DataSet oDs)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);

try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

//定义数据适配对象
SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);

int status = -1;
try
{
//填充DataSet
oleDataAdapter.Fill(oDs);
status = 0;
}
catch (Exception oErr)
{
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
status = -1;
}
finally
{
oleDataAdapter = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

# region GetDataTable 执行SQL语句并返回一个表
/// <summary>
/// 执行SQL语句并返回一个表
/// </summary>
/// <param name="cmdText">SQL文本</param>
/// <param name="DBCnStr">dbconnect</param>
/// <param name="inDt">返回表</param>
/// <returns>成功则返回0,否则返回错误代码</returns>
public int GetDataTable(string cmdText, ref DataTable inDt)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);

try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

//建立数据适配对象
SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);

int status = -1;
try
{
//填充数据表
oleDataAdapter.Fill(inDt);
status = 0;
}
catch (Exception oErr)
{
//异常处理
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
oleDataAdapter = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

# region GetDataTable 执行SQL语句并返回一个表
/// <summary>
/// 执行SQL语句并返回一个表
/// </summary>
/// <param name="cmdText">SQL文本</param>
/// <param name="DBCnStr">dbconnect</param>
/// <param name="inDt">返回表</param>
/// <returns>成功则返回0,否则返回错误代码</returns>
public int GetCount(string cmdText)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);

try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

//建立数据适配对象
SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);

DataTable inDt = new DataTable();
int status = -1;
try
{
//填充数据表
oleDataAdapter.Fill(inDt);

status = inDt.Rows.Count;
}
catch (Exception oErr)
{
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
status = -1;
}
finally
{
oleDataAdapter = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

# region // GetNVColl 执行SQL语句并返回NameValueCollection
///// <summary>
///// 执行SQL语句并返回NameValueCollection
///// </summary>
///// <param name="cmdText">SQL文本</param>
///// <param name="NameValueCollection">nvColl</param>
///// <returns>成功则返回0,否则返回错误代码</returns>
//public int GetNVColl(string cmdText, ref NameValueCollection nvColl)
//{

// DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
// SqlConnection oCn = new SqlConnection(DBCnStr);

// try
// {
// oCn.Open();
// }
// catch (Exception oErr)
// {
// //WriteFile(oErr.Message);
// Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

// return -1;
// }
// //建立数据读取对象
// SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
// //填充SqlDataReader
// SqlDataReader oleReader;

// int status = -1;
// try
// {

// oleReader = oleCommand.ExecuteReader();
// // Always call Read before accessing data.
// while (oleReader.Read())
// {
// for (int i = 0; i < oleReader.FieldCount; i++)
// {
// if (oleReader.GetValue(i).ToString() != "")
// nvColl.Add(oleReader.GetName(i), oleReader.GetString(i));
// }
// }

// status = 0;
// }
// catch (Exception oErr)
// {
// //异常处理
// //WriteFile(oErr.Message);
// Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

// status = -1;
// }
// finally
// {
// oleReader = null;
// if (oCn.State == System.Data.ConnectionState.Open)
// {
// oCn.Close();
// }
// }
// return status;
//}
#endregion

//
#region GetArrayList 执行SQL语句并返回一个ArrayList
///// <summary>
///// 执行SQL语句并返回一个ArrayList
///// </summary>
///// <param name="cmdText">SQL文本</param>
///// <returns>返回ArrayList arraylist[i]为name,arraylist[i+1]为value</returns>
//public ArrayList GetArrayList(string cmdText, ref ArrayList aName, ref ArrayList aValue)
//{
// ArrayList aNameValue = new ArrayList();
// SqlConnection oCn = new SqlConnection(DBCnStr);

// try
// {
// oCn.Open();
// }
// catch (Exception oErr)
// {
// //WriteFile(oErr.Message);
// Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

// return null;
// }
// //建立数据读取对象
// SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
// //填充SqlDataReader
// SqlDataReader oleReader;

// ArrayList status = null;
// try
// {

// oleReader = oleCommand.ExecuteReader();
// // Always call Read before accessing data.
// while (oleReader.Read())
// {
// for (int i = 0; i < oleReader.FieldCount; i++)
// {
// if (oleReader.GetValue(i).ToString() != "")
// aName.Add(oleReader.GetName(i));
// aValue.Add(oleReader.GetString(i + 1));
// }
// }

// status = aValue;
// }
// catch (Exception oErr)
// {
// //异常处理
// //WriteFile(oErr.Message);
// Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

// status = null;
// }
// finally
// {
// oleReader = null;
// if (oCn.State == System.Data.ConnectionState.Open)
// {
// oCn.Close();
// }
// }
// return status;
//}
#endregion
//

#region GetArrayList 执行SQL语句并返回一个ArrayList
/// <summary>
/// 执行SQL语句并返回一个ArrayList
/// </summary>
/// <param name="cmdText">SQL文本</param>
/// <returns>返回ArrayList arraylist[i]为name,arraylist[i+1]为value</returns>
public int GetArrayList(string cmdText, ref ArrayList aNameValue)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);

try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}
//建立数据读取对象
SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
//填充SqlDataReader
SqlDataReader oleReader;

int status = -1;
try
{

oleReader = oleCommand.ExecuteReader();
// Always call Read before accessing data.
while (oleReader.Read())
{
for (int i = 0; i < oleReader.FieldCount - 1; i ++ )
{
if (oleReader.GetValue(i).ToString() != "")
aNameValue.Add(oleReader.GetName(i));
}
}

status = 1;
}
catch (Exception oErr)
{
//异常处理
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
oleReader = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

#region GetASObject 执行SQL语句并返回一个包含多条数据的ASObject (name,value)
/// <summary>
/// 执行SQL语句,查询两个字段,并返回一个ASObject
/// </summary>
/// <param name="cmdText">SQL文本</param>
/// <param name="asO">ASObject 对象</param>
/// <returns>返回int ASObject[i]为(name,value)</returns>
public int GetASObjectMulti(string cmdText, ref ASObject asO)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}
//建立数据读取对象
SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
//填充SqlDataReader
SqlDataReader oleReader;

int status = -1;
try
{
int i = 1;
oleReader = oleCommand.ExecuteReader();
// Always call Read before accessing data.
while (oleReader.Read())
{
for (int j = 0; j < oleReader.FieldCount; j++)
{
asO.Add(i+"@"+oleReader.GetName(j),oleReader.GetValue(j));//i@+"name",i为第几条数据的序号
}
i++;
}

status = 1;
}
catch (Exception oErr)
{
//异常处理
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
oleReader = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

#region GetASObjectSingle 执行SQL语句并返回一个包含单条数据的ASObject (name,value)
/// <summary>
/// 执行SQL语句查询一条数据(必须返回一条数据),返回一个ASObject
/// </summary>
/// <param name="cmdText">SQL文本</param>
/// <param name="asO">ASObject 对象</param>
/// <returns>返回int ASObject[i]为(name,value)</returns>
public int GetASObjectSingle(string cmdText, ref ASObject asO)
{
DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}
//建立数据读取对象
SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
//填充SqlDataReader
SqlDataReader oleReader;

int status = -1;
try
{
//oleReader = oleCommand.ExecuteScalar(); // modified by apenni 2006-5-6
oleReader = oleCommand.ExecuteReader();
// Always call Read before accessing data.
while (oleReader.Read())
{
for (int i = 0; i < oleReader.FieldCount; i++)
{
asO.Add(oleReader.GetName(i), oleReader.GetValue(i));
}
}

status = 1;
}
catch (Exception oErr)
{
//异常处理
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
oleReader = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
return status;
}
#endregion

#region ExecuteSql 执行SET,DELETE语句时返回影响的行数
/// <summary>
/// 执行SET,DELETE语句时返回影响的行数
/// </summary>
/// <param name="cmdText">“SQL文本”</param>
/// <returns>“返回影响的行数,否则返回错误代码”</returns>
public int ExecuteSql(string cmdText)
{
int intReturn = -1;//返回影响的行数。
SqlCommand oCmd = new SqlCommand();

DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

oCmd.Connection = oCn;
oCmd.CommandType = CommandType.Text;
oCmd.CommandText = cmdText;

//定义事务 设定隔离级别
SqlTransaction oTx = oCn.BeginTransaction(IsolationLevel.ReadCommitted);
oCmd.Transaction = oTx;

//处理SQL语句
#region 事务处理
try
{
//支持事务
intReturn = oCmd.ExecuteNonQuery();
oTx.Commit();

}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

oTx.Rollback();

intReturn = -1;

}
finally
{
oCmd = null;
oTx = null;
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
}
#endregion

return intReturn;
}
#endregion

#region ExecuteSql 执行SET,DELETE语句时返回影响的行数
/// <summary>
/// 执行SET,DELETE语句时返回影响的行数
/// </summary>
/// <param name="cmdText">“SQL文本,支持多sql语句通过';'拼接”</param>
/// <returns>“返回影响的行数,否则返回错误代码”</returns>
public int ExecuteSql(params string[] cmdText)
{
string strSql = string.Empty;
foreach (string strCmd in cmdText)
{
strSql += strCmd;
}
return ExecuteSql(strSql);
}
//added by apenni 2006-5-6
#endregion

#region CallStoreProc 调用系统存储过程返回一个整数
/// <summary>
/// 调用系统存储过程返回一个整数
/// </summary>
/// <param name = "strSysSPName">“存储过程枚举类型”</param>
/// <param name="InParaName">"in参数名字"</param>
/// <param name = "ParamValue">“参数列表”</param>
/// <param name="OutParaName">"out参数名字"</param>
/// <param name="OutParaValue">"返回的参数值"</param>
/// <param name="IType">"out参数的类型"</param>
/// <returns>"成功则返回所影响的行数,否则返回-1"</returns>
public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType)
{
int inReturn = -1;

SqlCommand oCmd = new SqlCommand();

oCmd.CommandText = strSysSPName;
oCmd.CommandType = CommandType.StoredProcedure;

#region in参数的建立
if (InParamValue != null && InParaName != null)
{
//建立in参数
for (int i = 0; i < InParamValue.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (InParaName[i] != null)
{
oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
oPara.Direction = ParameterDirection.Input;
oCmd.Parameters.Add(oPara);
}
}
}
#endregion

#region out参数的建立

if (OutParaName != null && OutParaValue != null && IType != null)
{
//建立in参数
for (int i = 0; i < OutParaName.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (OutParaName[i] != null)
{
oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
oPara.Direction = ParameterDirection.Output;
oCmd.Parameters.Add(oPara);
}
}
}

#endregion

SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
return -1;
}

oCmd.Connection = oCn;

//连接数据库和执行存储过程
try
{
inReturn = oCmd.ExecuteNonQuery();
for (int i = 0; i < OutParaValue.Length; i++)
{
OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
}
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

inReturn = -1;
}
finally
{
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
oCmd = null;
}
return inReturn;
}
#endregion

#region CallStoreProc 调用系统存储过程并影响生成一个object对象值
/// <summary>
/// 调用系统存储过程并影响生成一个object对象值
/// </summary>
/// <param name = "strSysSPName">“存储过程枚举类型”</param>
/// <param name="InParaName">"in参数名字"</param>
/// <param name = "InParamValue">“in参数列表”</param>
/// <param name="OutParaName">"out参数名字"</param>
/// <param name="OutParaValue">"out参数值"</param>
/// <param name="IType">"out参数的类型"</param>
/// <param name="inObject">"引用的值"</param>
/// <returns>成功则返回1,否则返回-1或错误代码</returns>
public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref object objReturn)
{
//建立Command对象
SqlCommand oCmd = new SqlCommand();

oCmd.CommandText = strSysSPName.ToString();
oCmd.CommandType = CommandType.StoredProcedure;

int status = -1;

#region in参数的建立
if (InParamValue != null && InParaName != null)
{
//建立in参数
for (int i = 0; i < InParamValue.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (InParaName[i] != null)
{
oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
oPara.Direction = ParameterDirection.Input;
oCmd.Parameters.Add(oPara);
}
}
}
#endregion

#region out参数的建立

if (OutParaName != null && OutParaValue != null && IType != null)
{
//建立in参数
for (int i = 0; i < OutParaName.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (OutParaName[i] != null)
{
oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
oPara.Direction = ParameterDirection.Output;
oCmd.Parameters.Add(oPara);
}
}
}

#endregion

SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

oCmd.Connection = oCn;

//连接数据库和执行存储过程
try
{
//通过SqlDataAdapter来填充Table
objReturn = oCmd.ExecuteScalar();
#region 取得返回参数的值

for (int i = 0; i < OutParaValue.Length; i++)
{
OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
}

#endregion
status = 0;
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
oCmd = null;
}
return status;
}
#endregion

#region CallStoreProc 调用用户存储过程返回一个DataTable(Select 语句)
/// <summary>
/// 调用用户存储过程返回一个DataTable(Select 语句)
/// </summary>
/// <param name = "strSPName">“存储过程名”</param>
/// <param name="InParaName">"in参数名字"</param>
/// <param name = "InParamValue">“in参数列表”</param>
/// <param name="OutParaName">"out参数名字"</param>
/// <param name="IType">"out参数的类型"</param>
/// <param name="OutParaValue">"out参数值"</param>
/// <param name="oDT">"传入的DataTable引用"</param>
///<returns>"成功则返回1,否则返回-1或错误代码"</returns>
public int CallStoreProc(string strSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref DataTable oDT)
{

//建立Command对象
SqlCommand oCmd = new SqlCommand();

oCmd.CommandText = strSPName.ToString();
oCmd.CommandType = CommandType.StoredProcedure;

int status = -1;

#region in参数的建立
if (InParamValue != null && InParaName != null)
{
//建立in参数
for (int i = 0; i < InParamValue.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (InParaName[i] != null)
{
oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
oPara.Direction = ParameterDirection.Input;
oCmd.Parameters.Add(oPara);
}
}
}
#endregion

#region out参数的建立

if (OutParaName != null && OutParaValue != null && IType != null)
{
//建立in参数
for (int i = 0; i < OutParaName.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (OutParaName[i] != null)
{
oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
oPara.Direction = ParameterDirection.Output;
oCmd.Parameters.Add(oPara);
}
}
}

#endregion

SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

oCmd.Connection = oCn;

//连接数据库和执行存储过程
try
{
//通过SqlDataAdapter来填充Table

SqlDataAdapter oDp = new SqlDataAdapter(oCmd.CommandText.ToString(), oCn);

//建立SqlDataAdapter与SqlCommand的连接
oDp.SelectCommand = oCmd;
oDp.DeleteCommand = oCmd;
oDp.UpdateCommand = oCmd;
oDp.DeleteCommand = oCmd;

//填充DataTable
oDp.Fill(oDT);
#region 取得返回参数的值

for (int i = 0; i < OutParaValue.Length; i++)
{
OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
}

#endregion
status = 0;
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
oCmd = null;
}
return status;
}
#endregion

#region CallStoreProc 调用系统存储过程并影响生成一个DataSet对象
/// <summary>
/// 调用系统存储过程并影响生成一个DataSet对象
/// </summary>
/// <param name = "strSysSPName">“存储过程枚举类型”</param>
/// <param name="InParaName">"in参数名字"</param>
/// <param name = "InParamValue">“in参数列表”</param>
/// <param name="OutParaName">"out参数名字"</param>
/// <param name="OutParaValue">"out参数值"</param>
/// <param name="IType">"out参数的类型"</param>
/// <param name=" oDs">"引用的DataSet"</param>
/// <returns>成功则返回1,否则返回-1或错误代码</returns>
public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref DataSet oDs)
{
SqlCommand oCmd = new SqlCommand();

oCmd.CommandText = strSysSPName;
oCmd.CommandType = CommandType.StoredProcedure;

int status = -1;

#region in参数的建立
if (InParamValue != null && InParaName != null)
{
//建立in参数
for (int i = 0; i < InParamValue.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (InParaName[i] != null)
{
oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
oPara.Direction = ParameterDirection.Input;
oCmd.Parameters.Add(oPara);
}
}
}
#endregion

#region out参数的建立

if (OutParaName != null && OutParaValue != null && IType != null)
{
//建立in参数
for (int i = 0; i < OutParaName.Count; i++)
{
SqlParameter oPara = new SqlParameter();

//调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
if (OutParaName[i] != null)
{
oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
oPara.Direction = ParameterDirection.Output;
oCmd.Parameters.Add(oPara);
}
}
}

#endregion

SqlConnection oCn = new SqlConnection(DBCnStr);
try
{
oCn.Open();
}
catch (Exception oErr)
{
//WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

return -1;
}

oCmd.Connection = oCn;

//连接数据库和执行存储过程
try
{
//通过SqlDataAdapter来填充Table
SqlDataAdapter oDp = new SqlDataAdapter(oCmd.CommandText.ToString(), oCn);

//建立SqlDataAdapter与SqlCommand的连接
oDp.SelectCommand = oCmd;
oDp.DeleteCommand = oCmd;
oDp.UpdateCommand = oCmd;
oDp.DeleteCommand = oCmd;
//
oDp.Fill(oDs);
#region 取得返回参数的值
for (int i = 0; i < OutParaValue.Length; i++)
{
OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
}
#endregion
status = 0;
}
catch (Exception oErr)
{

// WriteFile(oErr.Message);
Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);

status = -1;
}
finally
{
if (oCn.State == System.Data.ConnectionState.Open)
{
oCn.Close();
}
oCmd = null;
}
return status;
}
#endregion

#region GetSqlWhere 产生SQL语句
/// <summary>
/// 产生SQL语句
/// </summary>
/// <param name="InName">表字段名</param>
/// <param name="InValue">表字段值</param>
/// <returns>结果SQL语句</returns>
public string GetSqlWhere(ArrayList InName, ArrayList InValue)
{
DataTable DataTableTmp = new DataTable();
string StrSqlWhereTmp = "";
string StrTmp = "";
string StrName = "";
string StrValue = "";

if (InName == null || InValue == null)
{
return null;
}
for (int i = 0; i < InName.Count; i++)
{
StrTmp = InName[i].ToString();
if (StrTmp.Substring(0, 2) == "#S") //开始时间
{
StrName = StrTmp.Substring(2) + " >= ";
StrValue = "to_date('" + InValue[i].ToString() + "','yyyy-mm-dd HH24:Mi:ss')";
}
else if (StrTmp.Substring(0, 2) == "#E")//结束时间
{
StrName = StrTmp.Substring(2) + " < ";
StrValue = "to_date('" + InValue[i].ToString() + "','yyyy-mm-dd HH24:Mi:ss')";
}
else if (StrTmp.Substring(0, 2) == "#N")//<>条件
{
StrName = StrTmp.Substring(2) + " <> ";
StrValue = InValue[i].ToString();
}
else if (StrTmp.Substring(0, 2) == "#D")//大于条件
{
StrName = StrTmp.Substring(2) + ">";
StrValue = InValue[i].ToString();
}
else if (StrTmp.Substring(0, 2) == "#X")//小于条件
{
StrName = StrTmp.Substring(2) + "<";
StrValue = InValue[i].ToString();
}
else if (StrTmp.Substring(0, 2) == "#I")//IN条件
{
StrName = StrTmp.Substring(2) + " IN (";
StrValue = InValue[i].ToString() + ")";
}
else if (StrTmp.Substring(0, 2) == "#0")//没有条件
{
return InValue[i].ToString();
}
else //等于条件
{
StrName = StrTmp + "=";
StrValue = InValue[i].ToString();
}

StrSqlWhereTmp = StrSqlWhereTmp + StrName + StrValue + " and ";
}

StrSqlWhereTmp = StrSqlWhereTmp.Substring(0, StrSqlWhereTmp.Length - 5);
return StrSqlWhereTmp;
}
#endregion
}
#endregion

#region class SQLParamHelper
/// <summary>
/// SQLParamHelper
/// </summary>
internal class SQLParamHelper
{
#region 创建出入参数
/// <summary>
/// 根据输入的OBJECT对象生成不同的参数
/// </summary>
/// <param name="name">“参数名字”</param>
/// <param name="nValue">“参数值”</param>
/// <returns></returns>
public static SqlParameter CreateParameterWithValue(string name, object nValue)
{
string strType;
SqlParameter param;
int intLenth = 0;

if (nValue != null)
{
strType = nValue.GetType().ToString();
intLenth = nValue.ToString().Trim().Length;
if (intLenth > 0)
{
switch (strType)
{
case "System.Int32":
{
param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Double":
{
param = new SqlParameter(name, SqlDbType.Decimal);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Single":
{
param = new SqlParameter(name, SqlDbType.Float);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.UInt64":
{
param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Int64":
{
param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Decimal":
{
param = new SqlParameter(name, SqlDbType.Decimal, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Object":
{
param = new SqlParameter(name, SqlDbType.Real, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.UInt16":
{
param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Int16":
{
param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Boolean":
{
param = new SqlParameter(name, SqlDbType.Binary);
param.Direction = ParameterDirection.Input;
bool bolTemp = (bool)nValue;
param.Value = (bolTemp == true ? 1 : 0);
break;
}
case "System.String":
{
param = new SqlParameter(name, SqlDbType.VarChar, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.DateTime":
{
param = new SqlParameter(name, SqlDbType.DateTime, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Char":
{
param = new SqlParameter(name, SqlDbType.Char, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.SByte":
{
param = new SqlParameter(name, SqlDbType.Bit, intLenth);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System_XMl":
{
param = new SqlParameter(name, SqlDbType.Xml, 300);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
case "System.Text":
{
if (intLenth < 2000)
{
param = new SqlParameter(name, SqlDbType.Text, intLenth);
}
else
{
param = new SqlParameter(name, SqlDbType.Text);
}
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
default:
{
param = new SqlParameter(name, SqlDbType.Variant);
param.Direction = ParameterDirection.Input;
param.Value = nValue;
break;
}
}
param.Direction = ParameterDirection.Input;
}
else
{
param = new SqlParameter(name, SqlDbType.VarChar, 10);
param.Direction = ParameterDirection.Input;
param.Value = "";
}
}
else
{
param = new SqlParameter(name, SqlDbType.Variant);
param.Direction = ParameterDirection.Input;
param.Value = null;
}
return param;

}
#endregion

#region CreateOutParameterWithValue 建立输出参数
/// <summary>
/// 建立输出参数
/// </summary>
/// <param name="name">"参数名"</param>
/// <param name="objType">"参数类型"</param>
/// <returns></returns>
public static SqlParameter CreateOutParameterWithValue(string name, string objType)
{
string strType = objType;

SqlParameter param;

switch (strType)
{
case "System_Object":
{
param = new SqlParameter(name, SqlDbType.Variant);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Single":
{
param = new SqlParameter(name, SqlDbType.Float);
param.Direction = ParameterDirection.Output;
break;
}
case "System_UInt64":
{
param = new SqlParameter(name, SqlDbType.BigInt);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Int64":
{
param = new SqlParameter(name, SqlDbType.BigInt);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Int32":
{
param = new SqlParameter(name, SqlDbType.Int);
param.Direction = ParameterDirection.Output;
break;
}
case "System_UInt16":
{
param = new SqlParameter(name, SqlDbType.SmallInt);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Int16":
{
param = new SqlParameter(name, SqlDbType.SmallInt);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Double":
{
param = new SqlParameter(name, SqlDbType.Float);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Decimal":
{
param = new SqlParameter(name, SqlDbType.Decimal);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Boolean":
{
param = new SqlParameter(name, SqlDbType.Binary);
param.Direction = ParameterDirection.Output;
break;
}
case "System_String":
{
param = new SqlParameter(name, SqlDbType.VarChar, 200);
param.Direction = ParameterDirection.Output;
break;
}
case "System_DateTime":
{
param = new SqlParameter(name, SqlDbType.DateTime);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Char":
{
param = new SqlParameter(name, SqlDbType.Char, 100);
param.Direction = ParameterDirection.Output;
break;
}
case "System_SByte":
{
param = new SqlParameter(name, SqlDbType.NChar, 30);
param.Direction = ParameterDirection.Output;
break;
}
case "System_Text":
{
param = new SqlParameter(name, SqlDbType.Text, 300);
param.Direction = ParameterDirection.Output;
break;
}
case "System_XMl":
{
param = new SqlParameter(name, SqlDbType.Xml, 300);
param.Direction = ParameterDirection.Output;
break;
}
default:
{
param = new SqlParameter(name, SqlDbType.Variant);
param.Direction = ParameterDirection.Output;
break;
}
}
return param;

}
#endregion CreateOutParams

#region CreateParameter 创建形式参数
/// <summary>
/// 转换参数为SQL语句的表达式
/// </summary>
/// <param name="nValue">传入的Object类型值</param>
/// <returns>已经转换好的String</returns>
public static string CreateParameter(SqlParameter oValue)
{
string strTemPara;
object oPara_Value = oValue.Value;

if (oPara_Value != null)
{
string strType = oValue.SqlDbType.ToString();
switch (strType)
{
case "VarChar":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
case "Char":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
case "NChar":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
case "NVarChar":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
//日期型
case "DateTime":
{
DateTime dt = new DateTime();
dt = (DateTime)oPara_Value;

string strTP = "'" + dt.Year + "-" + dt.Month + "-" + dt.Day;
strTP += " " + dt.Hour.ToString() + ":" + dt.Minute.ToString();
strTP += ":" + dt.Second.ToString() + "',";
strTemPara = "TO_DATE(" + strTP + "'yyyy-mm-dd hh24:mi:ss'" + ")";
break;
}
case "LongVarChar":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
case "Clob":
{
strTemPara = "'" + CheckMark(oPara_Value) + "'";
break;
}
default:
{
strTemPara = oPara_Value.ToString();
break;
}
}
}
else
{
//将null传入
strTemPara = "null";
}
return strTemPara;
}
#endregion

#region CheckMark 替换object的'为''并转换为String
/// <summary>
/// 替换object的'为''并转换为String
/// </summary>
/// <param name="objIn">传入的Object类型</param>
/// <returns>已经替换'为''的String</returns>
private static string CheckMark(object objIn)
{
string strTmp = objIn.ToString();

return strTmp.Replace("'", "''"); // modified by apenni 06.01.02

//string strRet = "";
//for (int i = 0; i < strTmp.Length; i++)
//{
// if (strTmp[i].ToString() == "'")
// {
// strRet += "''";
// }
// else
// {
// strRet += strTmp[i].ToString();
// }
//}
//return strRet;
}
#endregion
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: