/// <summary> /// 获取临时表-和数据库表一样的的表结构的才可以 /// </summary> /// <param name="SourceTable">原数据库表</param> /// <param name="dt">DataTable数据集</param> /// <param name="column">查询列</param> /// <param name="where">查询条件</param> /// <returns>处理过的数据</returns> public static DataTable GetTemporaryTable(string SourceTable, DataTable dt, string column, string where) { DataTable dt2 = new DataTable(); string tablename = "#sb" + System.DateTime.Now.ToString("MMddhhmmss"); string sql = "select * into " + tablename + " from " + SourceTable + " where 1=0"; try { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand command = new SqlCommand(sql, conn); command.ExecuteNonQuery(); System.Data.SqlClient.SqlBulkCopy sq = new System.Data.SqlClient.SqlBulkCopy(conn); sq.DestinationTableName = tablename; sq.WriteToServer(dt); if (column.IsNullOrEmpty()) { column = "*"; } SqlDataAdapter sd = new SqlDataAdapter("select " + column + " from " + tablename + " " + where, conn); DataSet ds = new DataSet(); sd.Fill(ds); command = new SqlCommand("drop table " + tablename, conn); command.ExecuteNonQuery(); return ds.Tables[0]; } } catch (Exception ex) { throw ex; } }