代码拉取完成,页面将自动刷新
同步操作将从 wxd_tony1984/DevelopAssistant 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using NORM.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace DevelopAssistant.Service
{
public class DataObjectToSQL : SnippetBase
{
public static string ToInsertSQL(string TableName, object DataSource, string dateFormat, DataBaseServer DatabaseServer, System.Windows.Forms.ProgressBar ProgressBar = null)
{
StringPlus sp = new StringPlus();
List<Column> columns = new List<Column>();
using (var db = Utility.GetAdohelper(DatabaseServer))
{
DataTable dt = db.GetTableObject(TableName);
foreach (DataRow dr in dt.Rows)
{
Column col = new Column();
col.Name = dr["ColumnName"] + "";
col.DataType = dr["TypeName"] + "";
col.IsNull = dr["CisNull"] + "";
if (col.IsNull.Contains("pk"))
{
col.Pk_Identify = true;
col.IsNull = col.IsNull.Replace("pk,", "");
}
if (col.IsNull.Contains("identity"))
{
col.Auto_Identify = true;
col.IsNull = col.IsNull.Replace("identity,", "");
}
col.IsNull = col.IsNull.Replace(",", "");
columns.Add(col);
}
}
if (DataSource == null)
throw new Exception("数据源对象为空");
bool Auto_Identify = false;
if (columns.FindAll((Column c) =>
{
if (c.Auto_Identify)
return true;
else return false;
}).Count > 0)
{
//有自增列
Auto_Identify = true;
}
var providerName = (DatabaseServer.ProviderName + "").ToLower();
if (Auto_Identify && providerName == "system.data.sql")
{
if (AppSettings.EditorSettings.KeywordsCase)
{
sp.Append("SET IDENTITY_INSERT " + getObject(TableName, DatabaseServer.ProviderName) + " ON");
}
else
{
sp.Append("set identity_insert " + getObject(TableName, DatabaseServer.ProviderName) + " on");
}
sp.Append(Environment.NewLine);
}
DataTable dst = null;
if (DataSource.GetType().Equals(typeof(DataTable)))
{
dst = DataSource as DataTable;
}
else if (DataSource.GetType().Equals(typeof(DataView)))
{
dst = ((DataView)DataSource).Table;
}
int indexRow = 0;
int totalRows = dst.Rows.Count;
foreach (DataRow dr in dst.Rows)
{
if (AppSettings.EditorSettings.KeywordsCase)
{
sp.Append("INSERT INTO");
}
else
{
sp.Append("insert into");
}
sp.Append(" " + getObject(TableName, DatabaseServer.ProviderName) + "");
int num = 0;
StringPlus fsp = new StringPlus();
StringPlus vsp = new StringPlus();
foreach (DataColumn dc in dst.Columns)
{
if (num > 0)
{
fsp.Append(",");
vsp.Append(",");
}
fsp.Append(getObject(dc.ColumnName, DatabaseServer.ProviderName));
vsp.Append(getObjectValue(dr[dc.ColumnName], dateFormat, DatabaseServer.ProviderName));
num++;
}
//sp.Append(Environment.NewLine);
sp.Append("( " + fsp.Value + " )");
//sp.Append(Environment.NewLine);
sp.Append(" ");
if (AppSettings.EditorSettings.KeywordsCase)
{
sp.Append("VALUES");
}
else
{
sp.Append("values");
}
//sp.Append(Environment.NewLine);
sp.Append("( " + vsp.Value + " )");
sp.Append(Environment.NewLine);
if (!Auto_Identify || !(providerName == "system.data.sql"))
{
if (AppSettings.EditorSettings.KeywordsCase)
{
sp.Append("GO");
}
else
{
sp.Append("go");
}
sp.Append(Environment.NewLine);
}
indexRow = indexRow + 1;
if (ProgressBar != null)
{
ProgressBar.Invoke(new System.Windows.Forms.MethodInvoker(() => { ProgressBar.Value = (int)((indexRow * 1.0d / totalRows) * 100); }));
System.Windows.Forms.Application.DoEvents();
}
}
if (Auto_Identify && providerName == "system.data.sql")
{
if (AppSettings.EditorSettings.KeywordsCase)
{
sp.Append("SET IDENTITY_INSERT dbo." + getObject(TableName, DatabaseServer.ProviderName) + " OFF");
}
else
{
sp.Append("set identity_insert dbo." + getObject(TableName, DatabaseServer.ProviderName) + " off");
}
sp.Append(Environment.NewLine);
}
return sp.Value;
}
public static string ToTableDataEmptySQL(string TableName, DataTable DataSoruce, DataBaseServer DatabaseServer)
{
StringPlus sql = new StringPlus();
if (AppSettings.EditorSettings.KeywordsCase)
{
sql.Append("SELECT");
}
else
{
sql.Append("select");
}
sql.Append(Environment.NewLine);
switch (DatabaseServer.ProviderName)
{
case "System.Data.Sql":
case "System.Data.SQL":
if (AppSettings.EditorSettings.KeywordsCase)
{
sql.Append(" TOP 0 ");
}
else
{
sql.Append(" top 0 ");
}
break;
case "System.Data.Sqlite":
break;
case "System.Data.PostgreSql":
break;
default :
break;
}
int colIndex = 0;
foreach (DataColumn dc in DataSoruce.Columns)
{
if (colIndex > 0)
sql.Append(",");
sql.Append(" "+getObject(dc.ColumnName,DatabaseServer.ProviderName)+" ");
colIndex++;
}
sql.Append(Environment.NewLine);
if (AppSettings.EditorSettings.KeywordsCase)
{
sql.Append("FROM ");
}
else
{
sql.Append("from ");
}
sql.Append(getObject(TableName, DatabaseServer.ProviderName) + "");
if (AppSettings.EditorSettings.KeywordsCase)
{
switch (DatabaseServer.ProviderName)
{
case "System.Data.Sql":
case "System.Data.SQL":
break;
case "System.Data.Sqlite":
sql.Append(" LIMIT 0;");
break;
case "System.Data.MySql":
case "System.Data.PostgreSql":
sql.Append(" LIMIT 0;");
break;
default:
break;
}
}
else
{
switch (DatabaseServer.ProviderName)
{
case "System.Data.Sql":
case "System.Data.SQL":
break;
case "System.Data.Sqlite":
sql.Append(" limit 0;");
break;
case "System.Data.MySql":
case "System.Data.PostgreSql":
sql.Append(" limit 0;");
break;
default:
break;
}
}
return sql.Value;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。