曾经有碰到过一个表中几十上百个字段,各个部门均需要修改记录,因数据库架构早定型,修改的话工作量会比较大,所以针对这种情况特意写了个方法,根据当前datatable 数据修改的记录以及数据库表的数据结构,动态生成SQL语句。
如下获取数据库中表的结构:
public static DataTable GetDataTableInfo(string ConnectionString, string tablename)
{
StringBuilder sql = new StringBuilder();
sql.AppendLine("select c.colid,ColumnName=c.name,type=t.name,c.status,");
sql.AppendLine(" Length=(case when left(t.name,5)='ntext' then 1073741823 when left(t.name,5)='text' then 214483647 ");
sql.AppendLine(" else (case when left(t.name,1)='n' then c.length/2 else c.length end) end),");
sql.AppendLine(" c.isnullable,c.xprec,c.xscale,colstat=case wh