天天看点

mysql help类_MySQL 帮助类 MySQLHelper

///

///MySqlHelper操作类///

public sealed partial classMySQLHelper

{public static readonly string DBConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[""].ToString();///

///批量操作每批次记录数///

public static int BatchSize = 2000;///

///超时时间///

public static int CommandTimeOut = 600;///

///初始化MySqlHelper实例///

/// 数据库连接字符串

public MySQLHelper(stringconnectionString)

{this.ConnectionString =connectionString;

}///

///数据库连接字符串///

public string ConnectionString { get; set; }#region 实例方法

#region ExecuteNonQuery

///

///执行SQL语句,返回影响的行数///

/// SQL语句

/// 查询参数

/// 返回影响的行数

public int ExecuteNonQuery(string commandText, paramsMySqlParameter[] parms)

{returnExecuteNonQuery(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回影响的行数///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回影响的行数

public int ExecuteNonQuery(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteNonQuery(ConnectionString, commandType, commandText, parms);

}#endregion ExecuteNonQuery

#region ExecuteScalar

///

///执行SQL语句,返回结果集中的第一行第一列///

/// 返回对象类型

/// SQL语句

/// 查询参数

/// 返回结果集中的第一行第一列

public T ExecuteScalar(string commandText, paramsMySqlParameter[] parms)

{return ExecuteScalar(ConnectionString, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// SQL语句

/// 查询参数

/// 返回结果集中的第一行第一列

public object ExecuteScalar(string commandText, paramsMySqlParameter[] parms)

{returnExecuteScalar(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行第一列

public object ExecuteScalar(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteScalar(ConnectionString, commandType, commandText, parms);

}#endregion ExecuteScalar

#region ExecuteDataReader

///

///执行SQL语句,返回只读数据集///

/// SQL语句

/// 查询参数

/// 返回只读数据集

private MySqlDataReader ExecuteDataReader(string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataReader(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回只读数据集///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回只读数据集

private MySqlDataReader ExecuteDataReader(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataReader(ConnectionString, commandType, commandText, parms);

}#endregion

#region ExecuteDataRow

///

///执行SQL语句,返回结果集中的第一行///

/// SQL语句

/// 查询参数

/// 返回结果集中的第一行

public DataRow ExecuteDataRow(string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataRow(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一行///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行

public DataRow ExecuteDataRow(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataRow(ConnectionString, commandType, commandText, parms);

}#endregion ExecuteDataRow

#region ExecuteDataTable

///

///执行SQL语句,返回结果集中的第一个数据表///

/// SQL语句

/// 查询参数

/// 返回结果集中的第一个数据表

public DataTable ExecuteDataTable(string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataTable(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一个数据表///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一个数据表

public DataTable ExecuteDataTable(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(ConnectionString, commandType, commandText, parms).Tables[0];

}#endregion ExecuteDataTable

#region ExecuteDataSet

///

///执行SQL语句,返回结果集///

/// SQL语句

/// 查询参数

/// 返回结果集

public DataSet ExecuteDataSet(string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataSet(ConnectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回结果集///

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集

public DataSet ExecuteDataSet(CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataSet(ConnectionString, commandType, commandText, parms);

}#endregion ExecuteDataSet

#region 批量操作

///

///使用MySqlDataAdapter批量更新数据///

/// 数据表

public voidBatchUpdate(DataTable table)

{

BatchUpdate(ConnectionString, table);

}///

///大批量数据插入,返回成功插入行数///

/// 数据表

/// 返回成功插入行数

public intBulkInsert(DataTable table)

{returnBulkInsert(ConnectionString, table);

}#endregion 批量操作

#endregion 实例方法

#region 静态方法

private static void PrepareCommand(MySqlCommand command, MySqlConnection connection, MySqlTransaction transaction, CommandType commandType, stringcommandText, MySqlParameter[] parms)

{if (connection.State !=ConnectionState.Open) connection.Open();

command.Connection=connection;

command.CommandTimeout=CommandTimeOut;//设置命令文本(存储过程名或SQL语句)

command.CommandText =commandText;//分配事务

if (transaction != null)

{

command.Transaction=transaction;

}//设置命令类型.

command.CommandType =commandType;if (parms != null && parms.Length > 0)

{//预处理MySqlParameter参数数组,将为NULL的参数赋值为DBNull.Value;

foreach (MySqlParameter parameter inparms)

{if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && (parameter.Value == null))

{

parameter.Value=DBNull.Value;

}

}

command.Parameters.AddRange(parms);

}

}#region ExecuteNonQuery

///

///执行SQL语句,返回影响的行数///

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// 返回影响的行数

public static int ExecuteNonQuery(string connectionString, string commandText, paramsMySqlParameter[] parms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{returnExecuteNonQuery(connection, CommandType.Text, commandText, parms);

}

}///

///执行SQL语句,返回影响的行数///

/// 数据库连接字符串

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回影响的行数

public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{returnExecuteNonQuery(connection, commandType, commandText, parms);

}

}///

///执行SQL语句,返回影响的行数///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回影响的行数

public static int ExecuteNonQuery(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteNonQuery(connection, null, commandType, commandText, parms);

}///

///执行SQL语句,返回影响的行数///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回影响的行数

public static int ExecuteNonQuery(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteNonQuery(transaction.Connection, transaction, commandType, commandText, parms);

}///

///执行SQL语句,返回影响的行数///

/// 数据库连接

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回影响的行数

private static int ExecuteNonQuery(MySqlConnection connection, MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

MySqlCommand command= newMySqlCommand();

PrepareCommand(command, connection, transaction, commandType, commandText, parms);int retval =command.ExecuteNonQuery();

command.Parameters.Clear();returnretval;

}#endregion ExecuteNonQuery

#region ExecuteScalar

///

///执行SQL语句,返回结果集中的第一行第一列///

/// 返回对象类型

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// 返回结果集中的第一行第一列

public static T ExecuteScalar(string connectionString, string commandText, paramsMySqlParameter[] parms)

{object result =ExecuteScalar(connectionString, commandText, parms);if (result != null)

{return (T)Convert.ChangeType(result, typeof(T)); ;

}return default(T);

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// 返回结果集中的第一行第一列

public static object ExecuteScalar(string connectionString, string commandText, paramsMySqlParameter[] parms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{returnExecuteScalar(connection, CommandType.Text, commandText, parms);

}

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 数据库连接字符串

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行第一列

public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{returnExecuteScalar(connection, commandType, commandText, parms);

}

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行第一列

public static object ExecuteScalar(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteScalar(connection, null, commandType, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行第一列

public static object ExecuteScalar(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteScalar(transaction.Connection, transaction, commandType, commandText, parms);

}///

///执行SQL语句,返回结果集中的第一行第一列///

/// 数据库连接

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一行第一列

private static object ExecuteScalar(MySqlConnection connection, MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

MySqlCommand command= newMySqlCommand();

PrepareCommand(command, connection, transaction, commandType, commandText, parms);object retval =command.ExecuteScalar();

command.Parameters.Clear();returnretval;

}#endregion ExecuteScalar

#region ExecuteDataReader

///

///执行SQL语句,返回只读数据集///

/// 数据库连接

/// SQL语句

/// 查询参数

/// 返回只读数据集

private static MySqlDataReader ExecuteDataReader(string connectionString, string commandText, paramsMySqlParameter[] parms)

{

MySqlConnection connection= newMySqlConnection(connectionString);return ExecuteDataReader(connection, null, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回只读数据集///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回只读数据集

private static MySqlDataReader ExecuteDataReader(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

MySqlConnection connection= newMySqlConnection(connectionString);return ExecuteDataReader(connection, null, commandType, commandText, parms);

}///

///执行SQL语句,返回只读数据集///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回只读数据集

private static MySqlDataReader ExecuteDataReader(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataReader(connection, null, commandType, commandText, parms);

}///

///执行SQL语句,返回只读数据集///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回只读数据集

private static MySqlDataReader ExecuteDataReader(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataReader(transaction.Connection, transaction, commandType, commandText, parms);

}///

///执行SQL语句,返回只读数据集///

/// 数据库连接

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回只读数据集

private static MySqlDataReader ExecuteDataReader(MySqlConnection connection, MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

MySqlCommand command= newMySqlCommand();

PrepareCommand(command, connection, transaction, commandType, commandText, parms);returncommand.ExecuteReader(CommandBehavior.CloseConnection);

}#endregion

#region ExecuteDataRow

///

///执行SQL语句,返回结果集中的第一行///

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// ,返回结果集中的第一行

public static DataRow ExecuteDataRow(string connectionString, string commandText, paramsMySqlParameter[] parms)

{

DataTable dt=ExecuteDataTable(connectionString, CommandType.Text, commandText, parms);return dt.Rows.Count > 0 ? dt.Rows[0] : null;

}///

///执行SQL语句,返回结果集中的第一行///

/// 数据库连接字符串

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// ,返回结果集中的第一行

public static DataRow ExecuteDataRow(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

DataTable dt=ExecuteDataTable(connectionString, commandType, commandText, parms);return dt.Rows.Count > 0 ? dt.Rows[0] : null;

}///

///执行SQL语句,返回结果集中的第一行///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// ,返回结果集中的第一行

public static DataRow ExecuteDataRow(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

DataTable dt=ExecuteDataTable(connection, commandType, commandText, parms);return dt.Rows.Count > 0 ? dt.Rows[0] : null;

}///

///执行SQL语句,返回结果集中的第一行///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// ,返回结果集中的第一行

public static DataRow ExecuteDataRow(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

DataTable dt=ExecuteDataTable(transaction, commandType, commandText, parms);return dt.Rows.Count > 0 ? dt.Rows[0] : null;

}#endregion ExecuteDataRow

#region ExecuteDataTable

///

///执行SQL语句,返回结果集中的第一个数据表///

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// 返回结果集中的第一个数据表

public static DataTable ExecuteDataTable(string connectionString, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(connectionString, CommandType.Text, commandText, parms).Tables[0];

}///

///执行SQL语句,返回结果集中的第一个数据表///

/// 数据库连接字符串

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一个数据表

public static DataTable ExecuteDataTable(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(connectionString, commandType, commandText, parms).Tables[0];

}///

///执行SQL语句,返回结果集中的第一个数据表///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一个数据表

public static DataTable ExecuteDataTable(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(connection, commandType, commandText, parms).Tables[0];

}///

///执行SQL语句,返回结果集中的第一个数据表///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集中的第一个数据表

public static DataTable ExecuteDataTable(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(transaction, commandType, commandText, parms).Tables[0];

}///

///执行SQL语句,返回结果集中的第一个数据表///

/// 数据库连接字符串

/// 数据表名称

/// 返回结果集中的第一个数据表

public static DataTable ExecuteEmptyDataTable(string connectionString, stringtableName)

{return ExecuteDataSet(connectionString, CommandType.Text, string.Format("select * from {0} where 1=-1", tableName)).Tables[0];

}#endregion ExecuteDataTable

#region ExecuteDataSet

///

///执行SQL语句,返回结果集///

/// 数据库连接字符串

/// SQL语句

/// 查询参数

/// 返回结果集

public static DataSet ExecuteDataSet(string connectionString, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataSet(connectionString, CommandType.Text, commandText, parms);

}///

///执行SQL语句,返回结果集///

/// 数据库连接字符串

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集

public static DataSet ExecuteDataSet(string connectionString, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{using (MySqlConnection connection = newMySqlConnection(connectionString))

{returnExecuteDataSet(connection, commandType, commandText, parms);

}

}///

///执行SQL语句,返回结果集///

/// 数据库连接

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集

public static DataSet ExecuteDataSet(MySqlConnection connection, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{return ExecuteDataSet(connection, null, commandType, commandText, parms);

}///

///执行SQL语句,返回结果集///

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集

public static DataSet ExecuteDataSet(MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{returnExecuteDataSet(transaction.Connection, transaction, commandType, commandText, parms);

}///

///执行SQL语句,返回结果集///

/// 数据库连接

/// 事务

/// 命令类型(存储过程,命令文本, 其它.)

/// SQL语句或存储过程名称

/// 查询参数

/// 返回结果集

private static DataSet ExecuteDataSet(MySqlConnection connection, MySqlTransaction transaction, CommandType commandType, string commandText, paramsMySqlParameter[] parms)

{

MySqlCommand command= newMySqlCommand();

PrepareCommand(command, connection, transaction, commandType, commandText, parms);

MySqlDataAdapter adapter= newMySqlDataAdapter(command);

DataSet ds= newDataSet();

adapter.Fill(ds);if (commandText.IndexOf("@") > 0)

{

commandText=commandText.ToLower();int index = commandText.IndexOf("where");if (index < 0)

{

index= commandText.IndexOf("\nwhere");

}if (index > 0)

{

ds.ExtendedProperties.Add("SQL", commandText.Substring(0, index - 1)); //将获取的语句保存在表的一个附属数组里,方便更新时生成CommandBuilder

}else{

ds.ExtendedProperties.Add("SQL", commandText); //将获取的语句保存在表的一个附属数组里,方便更新时生成CommandBuilder

}

}else{

ds.ExtendedProperties.Add("SQL", commandText); //将获取的语句保存在表的一个附属数组里,方便更新时生成CommandBuilder

}foreach (DataTable dt inds.Tables)

{

dt.ExtendedProperties.Add("SQL", ds.ExtendedProperties["SQL"]);

}

command.Parameters.Clear();returnds;

}#endregion ExecuteDataSet

#region 批量操作

///

///使用MySqlDataAdapter批量更新数据///

/// 数据库连接字符串

/// 数据表

public static void BatchUpdate(stringconnectionString, DataTable table)

{

MySqlConnection connection= newMySqlConnection(connectionString);

MySqlCommand command=connection.CreateCommand();

command.CommandTimeout=CommandTimeOut;

command.CommandType=CommandType.Text;

MySqlDataAdapter adapter= newMySqlDataAdapter(command);

MySqlCommandBuilder commandBulider= newMySqlCommandBuilder(adapter);

commandBulider.ConflictOption=ConflictOption.OverwriteChanges;

MySqlTransaction transaction= null;try{

connection.Open();

transaction=connection.BeginTransaction();//设置批量更新的每次处理条数

adapter.UpdateBatchSize =BatchSize;//设置事物

adapter.SelectCommand.Transaction =transaction;if (table.ExtendedProperties["SQL"] != null)

{

adapter.SelectCommand.CommandText= table.ExtendedProperties["SQL"].ToString();

}

adapter.Update(table);

transaction.Commit();/提交事务

}catch(MySqlException ex)

{if (transaction != null) transaction.Rollback();throwex;

}finally{

connection.Close();

connection.Dispose();

}

}///

///大批量数据插入,返回成功插入行数///

/// 数据库连接字符串

/// 数据表

/// 返回成功插入行数

public static int BulkInsert(stringconnectionString, DataTable table)

{if (string.IsNullOrEmpty(table.TableName)) throw new Exception("请给DataTable的TableName属性附上表名称");if (table.Rows.Count == 0) return 0;int insertCount = 0;string tmpPath =Path.GetTempFileName();string csv =DataTableToCsv(table);

File.WriteAllText(tmpPath, csv);using (MySqlConnection conn = newMySqlConnection(connectionString))

{

MySqlTransaction tran= null;try{

conn.Open();

tran=conn.BeginTransaction();

MySqlBulkLoader bulk= newMySqlBulkLoader(conn)

{

FieldTerminator= ",",

FieldQuotationCharacter= '"',

EscapeCharacter= '"',

LineTerminator= "\r\n",

FileName=tmpPath,

NumberOfLinesToSkip= 0,

TableName=table.TableName,

};

bulk.Columns.AddRange(table.Columns.Cast().Select(colum =>colum.ColumnName).ToList());

insertCount=bulk.Load();

tran.Commit();

}catch(MySqlException ex)

{if (tran != null) tran.Rollback();throwex;

}

}

File.Delete(tmpPath);returninsertCount;

}///

///将DataTable转换为标准的CSV///

/// 数据表

/// 返回标准的CSV

private static stringDataTableToCsv(DataTable table)

{//以半角逗号(即,)作分隔符,列为空也要表达其存在。//列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。//列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。

StringBuilder sb = newStringBuilder();

DataColumn colum;foreach (DataRow row intable.Rows)

{for (int i = 0; i < table.Columns.Count; i++)

{

colum=table.Columns[i];if (i != 0) sb.Append(",");if (colum.DataType == typeof(string) && row[colum].ToString().Contains(","))

{

sb.Append("\"" + row[colum].ToString().Replace("\"", "\"\"") + "\"");

}elsesb.Append(row[colum].ToString());

}

sb.AppendLine();

}returnsb.ToString();

}#endregion 批量操作

#endregion 静态方法}