您的位置:首页 > 数据库

从已有数据库表生成Insert语句的小工具

2011-01-27 22:13 274 查看
  有时,需要把数据从一个数据库转移到另一个数据库,如果数据不是很多,但是又不是手工可以完成那么少,就可以使用该小工具了。



该小小工具将一个表里的所有数据生成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();
}


点击下载项目
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: