有时,需要把数据从一个数据库转移到另一个数据库,如果数据不是很多,但是又不是手工可以完成那么少,就可以使用该小工具了。
该小小工具将一个表里的所有数据生成insert into 语句。其实现方式是:将数据读入到DataTable,然后逐行生成Sql语句,主要代码如下:
public string GetInsertSql(string tableName) { string sql = string.Empty; DataBase db = new DataBase(); DataSet ds = db.GetEntity(tableName); foreach (DataRow item in ds.Tables[0].Rows) { sql += this.GetSqlByDataRow(item, ds.Tables[0]); } return sql; } private string GetSqlByDataRow(DataRow row, DataTable dataTable) { StringBuilder sql = new StringBuilder("insert into "); sql.Append(dataTable.TableName); sql.Append("("); foreach (DataColumn item in dataTable.Columns) { sql.Append(item.ColumnName); sql.Append(","); } sql.Remove(sql.Length - 1, 1); sql.Append(")"); sql.Append("values"); sql.Append("("); foreach (DataColumn item in dataTable.Columns) { if (row[item] == DBNull.Value) { sql.Append("null"); } else { sql.Append("'"); if (item.DataType == typeof(DateTime)) { sql.Append(Convert.ToDateTime(row[item]).ToString("yyyy-MM-dd HH:mm:ss")); } else { sql.Append((row[item]).ToString()); } sql.Append("'"); } sql.Append(","); } sql.Remove(sql.Length - 1, 1); sql.Append(");\r\n"); return sql.ToString(); }