您的位置:首页 > 数据库

如何用数据表对象生成 sql insert 命令

2006-10-01 15:21 344 查看
前段时间做数据传输服务,在解决不同服务器之间进行数据交换时想到了这个方法,也许不是很常用,交流一下

public string[] GenInsertCmd(DataTable table)
{
string inscmd = "insert into " + table.TableName.Trim().ToLower() + " (";

foreach(DataColumn col in table.Columns)
{
inscmd += col.ColumnName + ",";
}

inscmd = inscmd.Substring(0,inscmd.Length - 1) + ") values (";

string[] sqlcmd = new string[table.Rows.Count];
int i = 0;

foreach(DataRow row in table.Rows)
{
sqlcmd[i] = "";

foreach(DataColumn col in table.Columns)
{
switch (col.DataType.Name.Trim().ToLower())
{
case "string":
try
{
sqlcmd[i] += "'" + ((string)row[col]).Trim() + "',";
}
catch
{
sqlcmd[i] += "null,";
}
break;
case "datetime":
try
{
sqlcmd[i] += "'" + ((DateTime)row[col]).ToString("yyyy-MM-dd hh:mm:ss.sss") + "',";
}
catch
{
sqlcmd[i] += "null,";
}
break;
case "boolean":
try
{
sqlcmd[i] += ((bool)row[col] == true ? "1," : "0,");
}
catch
{
sqlcmd[i] += "null,";
}
break;
case "byte[]":
sqlcmd[i] += "null" + ",";
break;
default:
if (row[col].ToString().Trim() == "")
sqlcmd[i] += "null,";
else
sqlcmd[i] += row[col].ToString().Trim() + ",";
break;
}
}
sqlcmd[i] = inscmd + sqlcmd[i].Substring(0,sqlcmd[i].Length - 1) + ")";

i += 1;
}

return sqlcmd;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐