diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.sln b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.sln
new file mode 100644
index 0000000..d8dda76
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.sln
@@ -0,0 +1,30 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CsharpOSMeteorCodeGenerator", "CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator.csproj", "{167C1F9B-BD25-4459-8431-14342D948248}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {167C1F9B-BD25-4459-8431-14342D948248}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Debug|x86.ActiveCfg = Debug|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Debug|x86.Build.0 = Debug|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Release|Any CPU.ActiveCfg = Release|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Release|Mixed Platforms.Build.0 = Release|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Release|x86.ActiveCfg = Release|x86
+ {167C1F9B-BD25-4459-8431-14342D948248}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.suo b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.suo
new file mode 100644
index 0000000..1dd4d27
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator.suo differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/CsharpOSMeteorCodeGenerator.csproj b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/CsharpOSMeteorCodeGenerator.csproj
new file mode 100644
index 0000000..3e3da2c
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/CsharpOSMeteorCodeGenerator.csproj
@@ -0,0 +1,149 @@
+
+
+
+ Debug
+ x86
+ 8.0.30703
+ 2.0
+ {167C1F9B-BD25-4459-8431-14342D948248}
+ WinExe
+ Properties
+ CsharpOSMeteorCodeGenerator
+ CsharpOSMeteorCodeGenerator
+ v4.0
+ Client
+ 512
+
+
+ x86
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ x86
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+ bin\Debug\ICSharpCode.TextEditor.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ about.cs
+
+
+
+
+
+
+
+ Form
+
+
+ Form1Test.cs
+
+
+ Form
+
+
+ F_ADO_CodeGenerator.cs
+
+
+ Form
+
+
+ F_CodeGenerator.cs
+
+
+ Form
+
+
+ F_login.cs
+
+
+ Form
+
+
+ F_Main.cs
+
+
+
+
+
+
+
+
+
+ about.cs
+
+
+ Form1Test.cs
+
+
+ F_ADO_CodeGenerator.cs
+
+
+ F_CodeGenerator.cs
+
+
+ F_login.cs
+
+
+ F_Main.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/ColumnData.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/ColumnData.cs
new file mode 100644
index 0000000..01a9d8e
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/ColumnData.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using CsharpOSMeteorCodeGenerator.Model;
+using System.Data.SqlClient;
+using System.Data;
+
+namespace CsharpOSMeteorCodeGenerator.Data
+{
+ public class ColumnData
+ {
+ public List ListColumnsByTable(Table table, SqlConnectionStringBuilder conn)
+ {
+ List lstColumns = new List();
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select ");
+ strBuilder.Append("a.column_name as column_name, ");
+ strBuilder.Append("CASE a.is_nullable ");
+ strBuilder.Append("WHEN 'YES' THEN 1 ");
+ strBuilder.Append("ELSE 0 ");
+ strBuilder.Append("END as nullable, ");
+ strBuilder.Append("a.data_type as type, ");
+ strBuilder.Append("a.character_maximum_length as character_maximum_length, ");
+ strBuilder.Append("(SELECT count([sc].[name]) as have ");
+ strBuilder.Append("FROM sys.indexes [si] ");
+ strBuilder.Append("JOIN ");
+ strBuilder.Append("sys.index_columns [sic] ");
+ strBuilder.Append("ON ");
+ strBuilder.Append("[si].[object_id] = [sic].[object_id] AND ");
+ strBuilder.Append("[si].[index_id] = [sic].[index_id] ");
+ strBuilder.Append("JOIN ");
+ strBuilder.Append("sys.columns [sc] ");
+ strBuilder.Append("ON ");
+ strBuilder.Append("[sic].[object_id] = [sc].[object_id] AND ");
+ strBuilder.Append("[sic].[column_id] = [sc].[column_id] ");
+ strBuilder.Append("WHERE [si].[is_primary_Key] = 1 ");
+ strBuilder.Append("and [sc].[name] = a.column_name ");
+ strBuilder.Append("and OBJECT_NAME([si].[object_id]) = a.table_name ");
+ strBuilder.Append(") as primary_key, ");
+ strBuilder.Append("( ");
+ strBuilder.Append("select ");
+ strBuilder.Append("count(ccu.column_name) as have ");
+ strBuilder.Append("from information_schema.constraint_column_usage ccu ");
+ strBuilder.Append("inner join information_schema.table_constraints tc ");
+ strBuilder.Append("on (ccu.constraint_name = tc.constraint_name) ");
+ strBuilder.Append("where tc.Constraint_Type = 'FOREIGN KEY' ");
+ strBuilder.Append("and ccu.table_name = a.table_name ");
+ strBuilder.Append("and ccu.column_name = a.column_name ");
+ strBuilder.Append(") as foreign_key ");
+ strBuilder.Append("from information_schema.columns a ");
+ strBuilder.Append("inner join information_schema.tables b ");
+ strBuilder.Append("on (a.table_name = b.table_name) ");
+ strBuilder.Append("where a.table_name = @tableName ");
+
+ SqlParameter data = new SqlParameter("@tableName", SqlDbType.NChar);
+ data.Value = table.Name;
+
+ cmd.CommandText = strBuilder.ToString();
+ cmd.Parameters.Add(data);
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Column column = new Column();
+ column.ForeignKey = Convert.ToBoolean(reader["foreign_key"]);
+ column.PrimaryKey = Convert.ToBoolean(reader["primary_key"]);
+ if (reader["character_maximum_length"] != DBNull.Value)
+ {
+ column.CharacterMaximumLength = Convert.ToInt32(reader["character_maximum_length"]);
+ }
+ column.Name = reader["column_name"].ToString();
+ column.Nullable = Convert.ToBoolean(reader["nullable"]);
+ column.Type = reader["type"].ToString();
+ column.Table = table;
+ lstColumns.Add(column);
+ }
+ dbConnection.Close();
+ }
+
+ return lstColumns;
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/GetListTables.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/GetListTables.cs
new file mode 100644
index 0000000..c22d965
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/GetListTables.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using CsharpOSMeteorCodeGenerator.Model;
+using System.Data.SqlClient;
+using System.Data;
+using System.Windows.Forms;
+using System.Linq.Expressions;
+
+namespace CsharpOSMeteorCodeGenerator.Data
+{
+ public class GetListTables
+ {
+ ///
+ /// List the tables of a specific database
+ ///
+ /// SQL Connection
+ /// tables list
+ public List ListTables(SqlConnectionStringBuilder conn, string db)
+ {
+ conn.InitialCatalog = db;
+ return new TableData().ListTables(conn);
+ }
+ public List ListViews(SqlConnectionStringBuilder conn, string db)
+ {
+ conn.InitialCatalog = db;
+ return new TableData().ListViews(conn);
+ }
+ public List ListProc(SqlConnectionStringBuilder conn, string db)
+ {
+ conn.InitialCatalog = db;
+ return new TableData().ListProc(conn);
+ }
+ public List GetListDBName(SqlConnectionStringBuilder connBuilder)
+ {
+ List rs = new List();
+ using (SqlConnection dbConnection = new SqlConnection(connBuilder.ConnectionString))
+ {
+ dbConnection.Open();
+ DataTable tempDataTable = dbConnection.GetSchema(SqlClientMetaDataCollectionNames.Databases);
+ //string str = ""; ;
+ foreach (DataRow dr in tempDataTable.Rows)
+ {
+ //数据库名 序号 创建时间
+ //str += dr[0] + " " + dr[1] + " " + dr[2] + "\n";
+ rs.Add(dr[0].ToString());
+ }
+ //MessageBox.Show(str);
+ //DataTable tempDataTable = dbConnection.GetSchema("Databases"); //和相同效果
+ //cmbDatabase.DataSource = tempDataTable;
+ //cmbDatabase.DisplayMember = tempDataTable.Columns["database_name"].ColumnName;
+ //cmbDatabase.ValueMember = tempDataTable.Columns["database_name"].ColumnName;
+ //MessageBox.Show("Connected successfully!", "Connected", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ dbConnection.Close();
+ }
+ return rs;
+
+ }
+
+ /************linqselect****************/
+ //public static IEnumerable getALLuserlist(Expression> expression, int isall)
+ //{
+ // using (DataObjectDataContext db = new DataObjectDataContext())
+ // {
+ // if (isall == 1)
+ // {
+ // return db.dt.Rows.Cast();//全查
+ // }
+ // else
+ // {
+ // return db.dt.Rows.Cast().AsQueryable().Where(expression);
+ // }
+ // }
+ //}
+ /****************************/
+ public class User
+ {
+
+ public int UserId { get; set; }
+ public string UserName { get; set; }
+ public string PwdHash { get; set; }
+ public int Status { get; set; }
+ public DateTime CreateTime { get; set; }
+
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SQLHelper.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SQLHelper.cs
new file mode 100644
index 0000000..c5f2543
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SQLHelper.cs
@@ -0,0 +1,385 @@
+//===============================================================================
+// This file is based on the Microsoft Data Access Application Block for .NET
+// For more information please go to
+// http://msdn.microsoft.com/library/en-us/dnbda/html/daab-rm.asp
+//===============================================================================
+
+using System;
+using System.Configuration;
+using System.Data;
+using System.Data.SqlClient;
+using System.Collections;
+
+namespace CsharpOSMeteorCodeGenerator.Data
+{
+
+ ///
+ /// The SqlHelper class is intended to encapsulate high performance,
+ /// scalable best practices for common uses of SqlClient.
+ ///
+ public abstract class SqlHelper
+ {
+
+ //Database connection strings
+ //public static readonly string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
+ public static readonly string ConnectionString = "Data Source=.;Initial Catalog=master;Integrated Security=True";
+
+ // Hashtable to store cached parameters
+ private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
+
+ ///
+ /// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// a valid connection string for a SqlConnection
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// an int representing the number of rows affected by the command
+ public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+
+ SqlCommand cmd = new SqlCommand();
+
+ using (SqlConnection conn = new SqlConnection(connectionString))
+ {
+ PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
+ int val = cmd.ExecuteNonQuery();
+ cmd.Parameters.Clear();
+ return val;
+ }
+ }
+
+ ///
+ /// Execute a SqlCommand (that returns no resultset) against an existing database connection
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// an existing database connection
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// an int representing the number of rows affected by the command
+ public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+
+ SqlCommand cmd = new SqlCommand();
+
+ PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
+ int val = cmd.ExecuteNonQuery();
+ cmd.Parameters.Clear();
+ return val;
+ }
+
+ ///
+ /// Execute a SqlCommand (that returns no resultset) using an existing SQL Transaction
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// an existing sql transaction
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// an int representing the number of rows affected by the command
+ public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+ SqlCommand cmd = new SqlCommand();
+ PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
+ int val = cmd.ExecuteNonQuery();
+ cmd.Parameters.Clear();
+ return val;
+ }
+
+ ///
+ /// Execute a SqlCommand that returns a resultset against the database specified in the connection string
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// a valid connection string for a SqlConnection
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// A SqlDataReader containing the results
+ public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+ SqlCommand cmd = new SqlCommand();
+ SqlConnection conn = new SqlConnection(connectionString);
+
+ // we use a try/catch here because if the method throws an exception we want to
+ // close the connection throw code, because no datareader will exist, hence the
+ // commandBehaviour.CloseConnection will not work
+ try
+ {
+ PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
+ SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
+ cmd.Parameters.Clear();
+ return rdr;
+ }
+ catch
+ {
+ conn.Close();
+ throw;
+ }
+ }
+
+ ///
+ /// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// a valid connection string for a SqlConnection
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// An object that should be converted to the expected type using Convert.To{Type}
+ public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+ SqlCommand cmd = new SqlCommand();
+
+ using (SqlConnection connection = new SqlConnection(connectionString))
+ {
+ PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
+ object val = cmd.ExecuteScalar();
+ cmd.Parameters.Clear();
+ return val;
+ }
+ }
+ public static object ExecuteScalar(string sql)
+ {
+ SqlCommand cmd = new SqlCommand();
+ cmd.CommandText = sql;
+ using (SqlConnection connection = new SqlConnection(ConnectionString))
+ {
+ cmd.Connection = connection;
+ connection.Open();
+ object val = cmd.ExecuteScalar();
+ connection.Close();
+ return val;
+ }
+ }
+
+ ///
+ /// Execute a SqlCommand that returns the first column of the first record against an existing database connection
+ /// using the provided parameters.
+ ///
+ ///
+ /// e.g.:
+ /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
+ ///
+ /// an existing database connection
+ /// the CommandType (stored procedure, text, etc.)
+ /// the stored procedure name or T-SQL command
+ /// an array of SqlParamters used to execute the command
+ /// An object that should be converted to the expected type using Convert.To{Type}
+ public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+
+ SqlCommand cmd = new SqlCommand();
+
+ PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
+ object val = cmd.ExecuteScalar();
+ cmd.Parameters.Clear();
+ return val;
+ }
+
+ ///
+ /// add parameter array to the cache
+ ///
+ /// Key to the parameter cache
+ /// an array of SqlParamters to be cached
+ public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)
+ {
+ parmCache[cacheKey] = commandParameters;
+ }
+
+ ///
+ /// Retrieve cached parameters
+ ///
+ /// key used to lookup parameters
+ /// Cached SqlParamters array
+ public static SqlParameter[] GetCachedParameters(string cacheKey)
+ {
+ SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];
+
+ if (cachedParms == null)
+ return null;
+
+ SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];
+
+ for (int i = 0, j = cachedParms.Length; i < j; i++)
+ clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();
+
+ return clonedParms;
+ }
+
+ ///
+ /// Prepare a command for execution
+ ///
+ /// SqlCommand object
+ /// SqlConnection object
+ /// SqlTransaction object
+ /// Cmd type e.g. stored procedure or text
+ /// Command text, e.g. Select * from Products
+ /// SqlParameters to use in the command
+ private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
+ {
+
+ if (conn.State != ConnectionState.Open)
+ conn.Open();
+
+ cmd.Connection = conn;
+ cmd.CommandText = cmdText;
+
+ if (trans != null)
+ cmd.Transaction = trans;
+
+ cmd.CommandType = cmdType;
+
+ if (cmdParms != null)
+ {
+ //foreach (SqlParameter parm in cmdParms)
+ // cmd.Parameters.Add(parm);
+ cmd.Parameters.AddRange(cmdParms);
+ }
+ }
+ public static SqlDataReader ExecuteReader(string sql)
+ {
+ SqlCommand cmd = new SqlCommand();
+ SqlConnection connection = new SqlConnection(ConnectionString);
+ connection.Open();
+ cmd.CommandText = sql;
+ cmd.Connection = connection;
+ return cmd.ExecuteReader(CommandBehavior.CloseConnection);
+ }
+ public static int ExecuteNonQuery(string sql)
+ {
+ SqlCommand cmd = new SqlCommand();
+
+ using (SqlConnection connection = new SqlConnection(ConnectionString))
+ {
+ connection.Open();
+ cmd.CommandText = sql;
+ cmd.Connection = connection;
+ int i = cmd.ExecuteNonQuery();
+ connection.Close();
+ return i;
+
+ }
+ }
+ public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+ SqlConnection connection = new SqlConnection(connectionString);
+ try
+ {
+ connection.Open();
+ SqlCommand cmd = new SqlCommand();
+ PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
+ SqlDataAdapter adp = new SqlDataAdapter(cmd);
+ DataSet dt = new DataSet();
+ adp.Fill(dt);
+ connection.Close();
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw (ex);
+ }
+ finally
+ {
+ if (connection.State != ConnectionState.Closed)
+ {
+ connection.Close();
+ }
+ }
+ }
+ public static DataSet ExecuteDataSet(string sql)
+ {
+ SqlConnection connection = new SqlConnection(ConnectionString);
+ try
+ {
+ connection.Open();
+ SqlCommand cmd = new SqlCommand(sql, connection);
+ cmd.CommandType = CommandType.Text;
+ SqlDataAdapter adp = new SqlDataAdapter(cmd);
+ DataSet dt = new DataSet();
+ adp.Fill(dt);
+ connection.Close();
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw (ex);
+ }
+ finally
+ {
+ if (connection.State != ConnectionState.Closed)
+ {
+ connection.Close();
+ }
+ }
+ }
+ ///
+ /// Get the DataTable object by the query
+ ///
+ /// SQL query
+ ///
+ public static DataTable ExecuteGetDataTableFromTableName(string sql)
+ {
+ //DataSet dsSet = new DataSet();
+ DataTable dt = new DataTable();
+ using (SqlConnection conn = new SqlConnection(ConnectionString))
+ {
+ //Command
+ SqlCommand scCommand = conn.CreateCommand();
+ //scCommand.CommandText = "select * from " + strTableName;
+ scCommand.CommandText = sql;
+ //Adapter
+ SqlDataAdapter sdaAdapter = new SqlDataAdapter(scCommand);
+ sdaAdapter.Fill(dt);
+ }
+ return dt;
+ }
+ public static DataTable ExecuteDataTable(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
+ {
+ SqlConnection connection = new SqlConnection(connectionString);
+ try
+ {
+ connection.Open();
+ SqlCommand cmd = new SqlCommand();
+ PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
+ SqlDataAdapter adp = new SqlDataAdapter(cmd);
+ DataTable dt = new DataTable();
+ adp.Fill(dt);
+ connection.Close();
+ return dt;
+ }
+ catch (Exception ex)
+ {
+ throw (ex);
+ }
+ finally
+ {
+ if (connection.State != ConnectionState.Closed)
+ {
+ connection.Close();
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SqlDbTypeAndDbTypeConvert.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SqlDbTypeAndDbTypeConvert.cs
new file mode 100644
index 0000000..a8046fc
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/SqlDbTypeAndDbTypeConvert.cs
@@ -0,0 +1,354 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Data;
+
+namespace CsharpOSMeteorCodeGenerator.Data
+{
+ public class SqlDbTypeAndDbTypeConvert
+ {
+ // SqlDbType转换为C#数据类型
+ public static Type SqlType2CsharpType(SqlDbType sqlType)
+ {
+ switch (sqlType)
+ {
+ case SqlDbType.BigInt:
+ return typeof(Int64);
+ case SqlDbType.Binary:
+ return typeof(Object);
+ case SqlDbType.Bit:
+ return typeof(Boolean);
+ case SqlDbType.Char:
+ return typeof(String);
+ case SqlDbType.DateTime:
+ return typeof(DateTime);
+ case SqlDbType.Decimal:
+ return typeof(Decimal);
+ case SqlDbType.Float:
+ return typeof(Double);
+ case SqlDbType.Image:
+ return typeof(Object);
+ case SqlDbType.Int:
+ return typeof(Int32);
+ case SqlDbType.Money:
+ return typeof(Decimal);
+ case SqlDbType.NChar:
+ return typeof(String);
+ case SqlDbType.NText:
+ return typeof(String);
+ case SqlDbType.NVarChar:
+ return typeof(String);
+ case SqlDbType.Real:
+ return typeof(Single);
+ case SqlDbType.SmallDateTime:
+ return typeof(DateTime);
+ case SqlDbType.SmallInt:
+ return typeof(Int16);
+ case SqlDbType.SmallMoney:
+ return typeof(Decimal);
+ case SqlDbType.Text:
+ return typeof(String);
+ case SqlDbType.Timestamp:
+ return typeof(Object);
+ case SqlDbType.TinyInt:
+ return typeof(Byte);
+ case SqlDbType.Udt://自定义的数据类型
+ return typeof(Object);
+ case SqlDbType.UniqueIdentifier:
+ return typeof(Object);
+ case SqlDbType.VarBinary:
+ return typeof(Object);
+ case SqlDbType.VarChar:
+ return typeof(String);
+ case SqlDbType.Variant:
+ return typeof(Object);
+ case SqlDbType.Xml:
+ return typeof(Object);
+ default:
+ return null;
+ }
+ }
+
+ // sql server数据类型(如:varchar)
+ // 转换为SqlDbType类型
+ public static SqlDbType SqlTypeString2SqlType(string sqlTypeString)
+ {
+ SqlDbType dbType = SqlDbType.Variant;//默认为Object
+
+ switch (sqlTypeString)
+ {
+ case "int":
+ dbType = SqlDbType.Int;
+ break;
+ case "varchar":
+ dbType = SqlDbType.VarChar;
+ break;
+ case "bit":
+ dbType = SqlDbType.Bit;
+ break;
+ case "datetime":
+ dbType = SqlDbType.DateTime;
+ break;
+ case "decimal":
+ dbType = SqlDbType.Decimal;
+ break;
+ case "float":
+ dbType = SqlDbType.Float;
+ break;
+ case "image":
+ dbType = SqlDbType.Image;
+ break;
+ case "money":
+ dbType = SqlDbType.Money;
+ break;
+ case "ntext":
+ dbType = SqlDbType.NText;
+ break;
+ case "nvarchar":
+ dbType = SqlDbType.NVarChar;
+ break;
+ case "smalldatetime":
+ dbType = SqlDbType.SmallDateTime;
+ break;
+ case "smallint":
+ dbType = SqlDbType.SmallInt;
+ break;
+ case "text":
+ dbType = SqlDbType.Text;
+ break;
+ case "bigint":
+ dbType = SqlDbType.BigInt;
+ break;
+ case "binary":
+ dbType = SqlDbType.Binary;
+ break;
+ case "char":
+ dbType = SqlDbType.Char;
+ break;
+ case "nchar":
+ dbType = SqlDbType.NChar;
+ break;
+ case "numeric":
+ dbType = SqlDbType.Decimal;
+ break;
+ case "real":
+ dbType = SqlDbType.Real;
+ break;
+ case "smallmoney":
+ dbType = SqlDbType.SmallMoney;
+ break;
+ case "sql_variant":
+ dbType = SqlDbType.Variant;
+ break;
+ case "timestamp":
+ dbType = SqlDbType.Timestamp;
+ break;
+ case "tinyint":
+ dbType = SqlDbType.TinyInt;
+ break;
+ case "uniqueidentifier":
+ dbType = SqlDbType.UniqueIdentifier;
+ break;
+ case "varbinary":
+ dbType = SqlDbType.VarBinary;
+ break;
+ case "xml":
+ dbType = SqlDbType.Xml;
+ break;
+ }
+ return dbType;
+ }
+ // sql server中的数据类型,转换为C#中的类型类型
+ public static Type SqlTypeString2CsharpType(string sqlTypeString)
+ {
+ SqlDbType dbTpe = SqlTypeString2SqlType(sqlTypeString);
+
+ return SqlType2CsharpType(dbTpe);
+ }
+
+ // 将sql server中的数据类型,转化为C#中的类型的字符串
+ public static string SqlTypeString2CsharpTypeString(string sqlTypeString)
+ {
+ Type type = SqlTypeString2CsharpType(sqlTypeString);
+
+ return type.Name;
+ }
+ public static string SqlTypeString2SqlTypers(string sqlTypeString)
+ {
+ //SqlDbType dbType ="SqlDbType.Variant;//默认为Object
+ string rs ="SqlDbType.Variant";
+ switch (sqlTypeString)
+ {
+ case "int":
+ rs ="SqlDbType.Int";
+ break;
+ case "varchar":
+ rs ="SqlDbType.VarChar";
+ break;
+ case "bit":
+ rs ="SqlDbType.Bit";
+ break;
+ case "datetime":
+ rs ="SqlDbType.DateTime";
+ break;
+ case "decimal":
+ rs ="SqlDbType.Decimal";
+ break;
+ case "float":
+ rs ="SqlDbType.Float";
+ break;
+ case "image":
+ rs ="SqlDbType.Image";
+ break;
+ case "money":
+ rs ="SqlDbType.Money";
+ break;
+ case "ntext":
+ rs ="SqlDbType.NText";
+ break;
+ case "nvarchar":
+ rs ="SqlDbType.NVarChar";
+ break;
+ case "smalldatetime":
+ rs ="SqlDbType.SmallDateTime";
+ break;
+ case "smallint":
+ rs ="SqlDbType.SmallInt";
+ break;
+ case "text":
+ rs ="SqlDbType.Text";
+ break;
+ case "bigint":
+ rs ="SqlDbType.BigInt";
+ break;
+ case "binary":
+ rs ="SqlDbType.Binary";
+ break;
+ case "char":
+ rs ="SqlDbType.Char";
+ break;
+ case "nchar":
+ rs ="SqlDbType.NChar";
+ break;
+ case "numeric":
+ rs ="SqlDbType.Decimal";
+ break;
+ case "real":
+ rs ="SqlDbType.Real";
+ break;
+ case "smallmoney":
+ rs = "SqlDbType.SmallMoney";
+ break;
+ case "sql_variant":
+ rs = "SqlDbType.Variant";
+ break;
+ case "timestamp":
+ rs = "SqlDbType.Timestamp";
+ break;
+ case "tinyint":
+ rs = "SqlDbType.TinyInt";
+ break;
+ case "uniqueidentifier":
+ rs = "SqlDbType.UniqueIdentifier";
+ break;
+ case "varbinary":
+ rs = "SqlDbType.VarBinary";
+ break;
+ case "xml":
+ rs = "SqlDbType.Xml";
+ break;
+ }
+ return rs;
+ }
+ public static string Str_TypersStringSqlType(string sqlTypeString)
+ {
+ //SqlDbType dbType ="SqlDbType.Variant;//默认为Object
+ //System.Convert.ToDateTime
+ string rs = "System.Convert.ToString";
+ //System.Convert.
+ switch (sqlTypeString)
+ {
+ case "int":
+ rs = "System.Convert.ToInt32";
+ break;
+ case "varchar":
+ rs = "System.Convert.ToString";
+ break;
+ case "bit":
+ rs = "System.Convert.ToBoolean";
+ break;
+ case "datetime":
+ rs = " DateTime.Parse";
+ break;
+ case "decimal":
+ rs = "Convert.ToDecimal";
+ break;
+ case "float":
+ rs = "System.Convert.ToDouble";
+ break;
+ case "image":
+ rs = "(Object)";
+ break;
+ case "money":
+ rs = "Convert.ToDecimal";
+ break;
+ case "ntext":
+ rs = "System.Convert.ToString";
+ break;
+ case "nvarchar":
+ rs = "System.Convert.ToString";
+ break;
+ case "smalldatetime":
+ rs = "DateTime.Parse";
+ break;
+ case "smallint":
+ rs = "System.Convert.ToInt16";
+ break;
+ case "text":
+ rs = "System.Convert.ToString";
+ break;
+ case "bigint":
+ rs = "System.Convert.ToInt32";
+ break;
+ case "binary":
+ rs = "SqlDbType.Binary";
+ break;
+ case "char":
+ rs = "System.Convert.ToString";
+ break;
+ case "nchar":
+ rs = "System.Convert.ToString";
+ break;
+ case "numeric":
+ rs = "SqlDbType.Decimal";
+ break;
+ case "real":
+ rs = "(object)";
+ break;
+ case "smallmoney":
+ rs = "(object)";
+ break;
+ case "sql_variant":
+ rs = "(object)";
+ break;
+ case "timestamp":
+ rs = "(object)";
+ break;
+ case "tinyint":
+ rs = "System.Convert.ToInt32";
+ break;
+ case "uniqueidentifier":
+ rs = "System.Guid.Parse";
+ break;
+ case "varbinary":
+ rs = "(Object)";
+ break;
+ case "xml":
+ rs = "(Object)";
+ break;
+ }
+ return rs;
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/TableData.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/TableData.cs
new file mode 100644
index 0000000..07d250f
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Data/TableData.cs
@@ -0,0 +1,255 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using CsharpOSMeteorCodeGenerator.Model;
+using System.Data.SqlClient;
+using System.Data;
+
+namespace CsharpOSMeteorCodeGenerator.Data
+{
+ public class TableData
+ {
+
+ ///
+ /// List the tables of an especific database
+ ///
+ /// SQL Connection
+ /// tables list
+ public List ListTables(SqlConnectionStringBuilder conn)
+ {
+ List lstTables = new List();
+ ColumnData columnDataLayer = new ColumnData();
+
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select ");
+ strBuilder.Append("a.table_catalog, ");
+ strBuilder.Append("a.table_schema, ");
+ strBuilder.Append("a.table_name ");
+ strBuilder.Append("from information_schema.tables a");
+
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+ cmd.CommandText = strBuilder.ToString();
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Table table = new Table();
+ table.Catalog = reader["table_catalog"].ToString();
+ table.Schema = reader["table_schema"].ToString();
+ table.Name = reader["table_name"].ToString();
+ // Fill the table columns
+ foreach (Column column in columnDataLayer.ListColumnsByTable(table, conn))
+ {
+ table.AddColumn(column);
+ }
+ lstTables.Add(table);
+ }
+ dbConnection.Close();
+ }
+ return lstTables;
+ }
+ public List ListTablesColumn(string tableName, SqlConnectionStringBuilder conn)
+ {
+ List lstColumns = new List();
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select ");
+ strBuilder.Append("a.column_name as column_name, ");
+ strBuilder.Append("CASE a.is_nullable ");
+ strBuilder.Append("WHEN 'YES' THEN 1 ");
+ strBuilder.Append("ELSE 0 ");
+ strBuilder.Append("END as nullable, ");
+ strBuilder.Append("a.data_type as type, ");
+ strBuilder.Append("a.character_maximum_length as character_maximum_length, ");
+ strBuilder.Append("(SELECT count([sc].[name]) as have ");
+ strBuilder.Append("FROM sys.indexes [si] ");
+ strBuilder.Append("JOIN ");
+ strBuilder.Append("sys.index_columns [sic] ");
+ strBuilder.Append("ON ");
+ strBuilder.Append("[si].[object_id] = [sic].[object_id] AND ");
+ strBuilder.Append("[si].[index_id] = [sic].[index_id] ");
+ strBuilder.Append("JOIN ");
+ strBuilder.Append("sys.columns [sc] ");
+ strBuilder.Append("ON ");
+ strBuilder.Append("[sic].[object_id] = [sc].[object_id] AND ");
+ strBuilder.Append("[sic].[column_id] = [sc].[column_id] ");
+ strBuilder.Append("WHERE [si].[is_primary_Key] = 1 ");
+ strBuilder.Append("and [sc].[name] = a.column_name ");
+ strBuilder.Append("and OBJECT_NAME([si].[object_id]) = a.table_name ");
+ strBuilder.Append(") as primary_key, ");
+ strBuilder.Append("( ");
+ strBuilder.Append("select ");
+ strBuilder.Append("count(ccu.column_name) as have ");
+ strBuilder.Append("from information_schema.constraint_column_usage ccu ");
+ strBuilder.Append("inner join information_schema.table_constraints tc ");
+ strBuilder.Append("on (ccu.constraint_name = tc.constraint_name) ");
+ strBuilder.Append("where tc.Constraint_Type = 'FOREIGN KEY' ");
+ strBuilder.Append("and ccu.table_name = a.table_name ");
+ strBuilder.Append("and ccu.column_name = a.column_name ");
+ strBuilder.Append(") as foreign_key ");
+ strBuilder.Append("from information_schema.columns a ");
+ strBuilder.Append("inner join information_schema.tables b ");
+ strBuilder.Append("on (a.table_name = b.table_name) ");
+ strBuilder.Append("where a.table_name = @tableName ");
+
+ SqlParameter data = new SqlParameter("@tableName", SqlDbType.NChar);
+ data.Value = tableName;
+
+ cmd.CommandText = strBuilder.ToString();
+ cmd.Parameters.Add(data);
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Column column = new Column();
+ column.ForeignKey = Convert.ToBoolean(reader["foreign_key"]);
+ column.PrimaryKey = Convert.ToBoolean(reader["primary_key"]);
+ if (reader["character_maximum_length"] != DBNull.Value)
+ {
+ column.CharacterMaximumLength = Convert.ToInt32(reader["character_maximum_length"]);
+ }
+ column.Name = reader["column_name"].ToString();
+ column.Nullable = Convert.ToBoolean(reader["nullable"]);
+ column.Type = reader["type"].ToString();
+ //column.Table = table;
+ lstColumns.Add(column);
+ }
+ dbConnection.Close();
+ }
+
+ return lstColumns;
+ }
+ public List ListViews(SqlConnectionStringBuilder conn)
+ {
+ List lstTables = new List();
+ ColumnData columnDataLayer = new ColumnData();
+
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select ");
+ strBuilder.Append("a.table_catalog, ");
+ strBuilder.Append("a.table_schema, ");
+ strBuilder.Append("a.table_name ");
+ strBuilder.Append("from information_schema.views a");
+
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+ cmd.CommandText = strBuilder.ToString();
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Table table = new Table();
+ table.Catalog = reader["table_catalog"].ToString();
+ table.Schema = reader["table_schema"].ToString();
+ table.Name = reader["table_name"].ToString();
+ // Fill the table columns
+ foreach (Column column in columnDataLayer.ListColumnsByTable(table, conn))
+ {
+ table.AddColumn(column);
+ }
+ lstTables.Add(table);
+ }
+ dbConnection.Close();
+ }
+ return lstTables;
+ }
+ public List ListProc(SqlConnectionStringBuilder conn)
+ {
+ List lstTables = new List();
+ ColumnData columnDataLayer = new ColumnData();
+
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select ");
+ strBuilder.Append("a.SPECIFIC_CATALOG as dbname ,");
+ strBuilder.Append(" a.ROUTINE_NAME as procname ,");
+ strBuilder.Append("a.ROUTINE_DEFINITION as proccontext,");
+ strBuilder.Append("a.CREATED as createdate, ");
+ strBuilder.Append("a.LAST_ALTERED as updatetime");
+ strBuilder.Append(" from information_schema.ROUTINES a where a.ROUTINE_TYPE='PROCEDURE'");
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+ cmd.CommandText = strBuilder.ToString();
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Table table = new Table();
+ table.Catalog = reader["updatetime"].ToString();
+ table.Schema = reader["proccontext"].ToString();
+ table.Name = reader["procname"].ToString();
+ //Fill the table columns
+ foreach (Column column in columnDataLayer.ListColumnsByTable(table, conn))
+ {
+ table.AddColumn(column);
+ }
+ lstTables.Add(table);
+ }
+ dbConnection.Close();
+ }
+ return lstTables;
+ }
+ public List ListFunction(SqlConnectionStringBuilder conn)
+ {
+ List lstTables = new List();
+ ColumnData columnDataLayer = new ColumnData();
+
+ using (SqlConnection dbConnection = new SqlConnection(conn.ConnectionString))
+ {
+ dbConnection.Open();
+ StringBuilder strBuilder = new StringBuilder();
+ SqlCommand cmd = new SqlCommand();
+
+ strBuilder.Append("select");
+ strBuilder.Append("a.SPECIFIC_CATALOG as dbname ,");
+ strBuilder.Append(" a.ROUTINE_NAME as procname ,");
+ strBuilder.Append("a.ROUTINE_DEFINITION as proccontext,");
+ strBuilder.Append("a.CREATED as createdate, ");
+ strBuilder.Append("a.LAST_ALTERED as updatetime");
+ strBuilder.Append("from information_schema.ROUTINES a where a.ROUTINE_TYPE='FUNCTION'");
+ cmd.CommandType = CommandType.Text;
+ cmd.Connection = dbConnection;
+ cmd.CommandText = strBuilder.ToString();
+
+ SqlDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ Table table = new Table();
+ table.Catalog = reader["dbname"].ToString();
+ table.Schema = reader["proccontext"].ToString();
+ table.Name = reader["procname"].ToString();
+ // Fill the table columns
+ //foreach (Column column in columnDataLayer.ListColumnsByTable(table, conn))
+ //{
+ // table.AddColumn(column);
+ //}
+ lstTables.Add(table);
+ }
+ dbConnection.Close();
+ }
+ return lstTables;
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.Designer.cs
new file mode 100644
index 0000000..b5460b9
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.Designer.cs
@@ -0,0 +1,284 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class F_ADO_CodeGenerator
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_ADO_CodeGenerator));
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.panel4 = new System.Windows.Forms.Panel();
+ this.bun_back = new System.Windows.Forms.Button();
+ this.btn_CodeGenerator = new System.Windows.Forms.Button();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.txt_methodsname = new System.Windows.Forms.TextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.panel3 = new System.Windows.Forms.Panel();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.llab_checkAllorNot_Click1 = new System.Windows.Forms.LinkLabel();
+ this.tvw_field_where = new System.Windows.Forms.TreeView();
+ this.lstImage = new System.Windows.Forms.ImageList(this.components);
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.llab_checkAllorNot = new System.Windows.Forms.LinkLabel();
+ this.tvw_field = new System.Windows.Forms.TreeView();
+ this.lb_state = new System.Windows.Forms.Label();
+ this.panel1.SuspendLayout();
+ this.panel4.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.panel3.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.panel4);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel1.Location = new System.Drawing.Point(0, 333);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(674, 33);
+ this.panel1.TabIndex = 1;
+ //
+ // panel4
+ //
+ this.panel4.Controls.Add(this.bun_back);
+ this.panel4.Controls.Add(this.btn_CodeGenerator);
+ this.panel4.Dock = System.Windows.Forms.DockStyle.Right;
+ this.panel4.Location = new System.Drawing.Point(304, 0);
+ this.panel4.Name = "panel4";
+ this.panel4.Size = new System.Drawing.Size(370, 33);
+ this.panel4.TabIndex = 14;
+ //
+ // bun_back
+ //
+ this.bun_back.Location = new System.Drawing.Point(95, 3);
+ this.bun_back.Name = "bun_back";
+ this.bun_back.Size = new System.Drawing.Size(75, 23);
+ this.bun_back.TabIndex = 13;
+ this.bun_back.Text = "back";
+ this.bun_back.UseVisualStyleBackColor = true;
+ this.bun_back.Click += new System.EventHandler(this.bun_back_Click);
+ //
+ // btn_CodeGenerator
+ //
+ this.btn_CodeGenerator.Location = new System.Drawing.Point(202, 4);
+ this.btn_CodeGenerator.Name = "btn_CodeGenerator";
+ this.btn_CodeGenerator.Size = new System.Drawing.Size(126, 23);
+ this.btn_CodeGenerator.TabIndex = 12;
+ this.btn_CodeGenerator.Text = "CodeGenerator";
+ this.btn_CodeGenerator.UseVisualStyleBackColor = true;
+ this.btn_CodeGenerator.Click += new System.EventHandler(this.btn_CodeGenerator_Click);
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.lb_state);
+ this.panel2.Controls.Add(this.txt_methodsname);
+ this.panel2.Controls.Add(this.label2);
+ this.panel2.Controls.Add(this.label1);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel2.Location = new System.Drawing.Point(0, 0);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(674, 47);
+ this.panel2.TabIndex = 2;
+ //
+ // txt_methodsname
+ //
+ this.txt_methodsname.Location = new System.Drawing.Point(165, 12);
+ this.txt_methodsname.Name = "txt_methodsname";
+ this.txt_methodsname.Size = new System.Drawing.Size(237, 21);
+ this.txt_methodsname.TabIndex = 2;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(85, 17);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(77, 12);
+ this.label2.TabIndex = 1;
+ this.label2.Text = "MethodsName:";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("宋体", 12F);
+ this.label1.Location = new System.Drawing.Point(8, 13);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(56, 16);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "label1";
+ //
+ // panel3
+ //
+ this.panel3.Controls.Add(this.groupBox2);
+ this.panel3.Controls.Add(this.groupBox1);
+ this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel3.Location = new System.Drawing.Point(0, 47);
+ this.panel3.Name = "panel3";
+ this.panel3.Size = new System.Drawing.Size(674, 286);
+ this.panel3.TabIndex = 3;
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.llab_checkAllorNot_Click1);
+ this.groupBox2.Controls.Add(this.tvw_field_where);
+ this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.groupBox2.Location = new System.Drawing.Point(365, 0);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(309, 286);
+ this.groupBox2.TabIndex = 1;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "field-where";
+ //
+ // llab_checkAllorNot_Click1
+ //
+ this.llab_checkAllorNot_Click1.AutoSize = true;
+ this.llab_checkAllorNot_Click1.Location = new System.Drawing.Point(203, 2);
+ this.llab_checkAllorNot_Click1.Name = "llab_checkAllorNot_Click1";
+ this.llab_checkAllorNot_Click1.Size = new System.Drawing.Size(101, 12);
+ this.llab_checkAllorNot_Click1.TabIndex = 11;
+ this.llab_checkAllorNot_Click1.TabStop = true;
+ this.llab_checkAllorNot_Click1.Text = "check all or not";
+ this.llab_checkAllorNot_Click1.Click += new System.EventHandler(this.llab_checkAllorNot_Click1_Click);
+ //
+ // tvw_field_where
+ //
+ this.tvw_field_where.CheckBoxes = true;
+ this.tvw_field_where.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tvw_field_where.ImageIndex = 0;
+ this.tvw_field_where.ImageList = this.lstImage;
+ this.tvw_field_where.Location = new System.Drawing.Point(3, 17);
+ this.tvw_field_where.Name = "tvw_field_where";
+ this.tvw_field_where.SelectedImageIndex = 0;
+ this.tvw_field_where.Size = new System.Drawing.Size(303, 266);
+ this.tvw_field_where.TabIndex = 2;
+ //
+ // lstImage
+ //
+ this.lstImage.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("lstImage.ImageStream")));
+ this.lstImage.TransparentColor = System.Drawing.Color.Transparent;
+ this.lstImage.Images.SetKeyName(0, "table-icon.png");
+ this.lstImage.Images.SetKeyName(1, "field-icon.png");
+ this.lstImage.Images.SetKeyName(2, "primary_key-icon.png");
+ this.lstImage.Images.SetKeyName(3, "foreign_key-icon.png");
+ this.lstImage.Images.SetKeyName(4, "db.png");
+ this.lstImage.Images.SetKeyName(5, "00060.png");
+ this.lstImage.Images.SetKeyName(6, "views.png");
+ this.lstImage.Images.SetKeyName(7, "proc.png");
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.llab_checkAllorNot);
+ this.groupBox1.Controls.Add(this.tvw_field);
+ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.groupBox1.Location = new System.Drawing.Point(0, 0);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(365, 286);
+ this.groupBox1.TabIndex = 0;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "field";
+ //
+ // llab_checkAllorNot
+ //
+ this.llab_checkAllorNot.AutoSize = true;
+ this.llab_checkAllorNot.Location = new System.Drawing.Point(238, 3);
+ this.llab_checkAllorNot.Name = "llab_checkAllorNot";
+ this.llab_checkAllorNot.Size = new System.Drawing.Size(101, 12);
+ this.llab_checkAllorNot.TabIndex = 11;
+ this.llab_checkAllorNot.TabStop = true;
+ this.llab_checkAllorNot.Text = "check all or not";
+ this.llab_checkAllorNot.Click += new System.EventHandler(this.llab_checkAllorNot_Click);
+ //
+ // tvw_field
+ //
+ this.tvw_field.CheckBoxes = true;
+ this.tvw_field.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tvw_field.ImageIndex = 0;
+ this.tvw_field.ImageList = this.lstImage;
+ this.tvw_field.Location = new System.Drawing.Point(3, 17);
+ this.tvw_field.Name = "tvw_field";
+ this.tvw_field.SelectedImageIndex = 0;
+ this.tvw_field.Size = new System.Drawing.Size(359, 266);
+ this.tvw_field.TabIndex = 1;
+ //
+ // lb_state
+ //
+ this.lb_state.AutoSize = true;
+ this.lb_state.Font = new System.Drawing.Font("宋体", 9F);
+ this.lb_state.ForeColor = System.Drawing.Color.Red;
+ this.lb_state.Location = new System.Drawing.Point(412, 17);
+ this.lb_state.Name = "lb_state";
+ this.lb_state.Size = new System.Drawing.Size(0, 12);
+ this.lb_state.TabIndex = 3;
+ //
+ // F_ADO_CodeGenerator
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(674, 366);
+ this.Controls.Add(this.panel3);
+ this.Controls.Add(this.panel2);
+ this.Controls.Add(this.panel1);
+ this.Name = "F_ADO_CodeGenerator";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "F_ADO_CodeGenerator";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.F_ADO_CodeGenerator_FormClosing);
+ this.Load += new System.EventHandler(this.F_ADO_CodeGenerator_Load);
+ this.panel1.ResumeLayout(false);
+ this.panel4.ResumeLayout(false);
+ this.panel2.ResumeLayout(false);
+ this.panel2.PerformLayout();
+ this.panel3.ResumeLayout(false);
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.Panel panel3;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.TreeView tvw_field;
+ private System.Windows.Forms.ImageList lstImage;
+ private System.Windows.Forms.TreeView tvw_field_where;
+ private System.Windows.Forms.LinkLabel llab_checkAllorNot_Click1;
+ private System.Windows.Forms.LinkLabel llab_checkAllorNot;
+ private System.Windows.Forms.Button btn_CodeGenerator;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.TextBox txt_methodsname;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Button bun_back;
+ private System.Windows.Forms.Panel panel4;
+ private System.Windows.Forms.Label lb_state;
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.cs
new file mode 100644
index 0000000..a04d181
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.cs
@@ -0,0 +1,649 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using CsharpOSMeteorCodeGenerator.Model;
+using ICSharpCode.TextEditor;
+using CsharpOSMeteorCodeGenerator.Data;
+using System.IO;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class F_ADO_CodeGenerator : Form
+ {
+ public F_ADO_CodeGenerator()
+ {
+ InitializeComponent();
+ }
+ public object selectnode { get; set; }
+ public string SQLType { get; set; }
+ public string Pidnode_dbname { get; set; }
+ string Pidnode_TBname = "";
+ //List list_tab;
+ //List list_tab2;
+ int type = 0;
+
+ private void F_ADO_CodeGenerator_Load(object sender, EventArgs e)
+ {
+ F_AD0_Load();
+ if (SQLType == "Select") {
+ type = 1;
+
+ }
+ if (SQLType == "Update")
+ {
+ type = 2;
+ }
+ if (SQLType == "Insert")
+ {
+ type = 3;
+ this.groupBox2.Hide();
+ //this.tvw_field.Enabled = false;
+ //this.llab_checkAllorNot.Hide();
+ //NodecheckAllorNot(true, this.tvw_field);
+ setIsnull_insert(this.tvw_field);
+ }
+ if (SQLType == "Delete")
+ {
+ type = 4;
+ this.groupBox1.Hide();
+ }
+ this.label1.Text = SQLType;
+ this.txt_methodsname.Text = Pidnode_TBname + SQLType + "_Custom";
+
+ }
+ void F_AD0_Load() {
+ this.btn_CodeGenerator.Enabled = false;
+ this.bun_back.Enabled = false;
+ this.llab_checkAllorNot.Enabled = false;
+ this.llab_checkAllorNot_Click1.Enabled = false;
+
+ OSMyNode node = (OSMyNode)this.selectnode;
+ Pidnode_TBname = node.Text;
+ Data.GetListTables glt = new Data.GetListTables();
+ Data.ColumnData dcd = new Data.ColumnData();
+ Data.TableData tabdata = new Data.TableData();
+ List list_column = tabdata.ListTablesColumn(node.Text, Model.EModel.connBuilder);
+ OSMyNode Tnode;
+ foreach (Column column in list_column)
+ {
+ Tnode = new OSMyNode();
+ Tnode.Value = column;
+ //Tnode.Text = column.Name;
+ Tnode.Text = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ToolTipText = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ImageIndex = GetImageIndex(column);
+ Tnode.SelectedImageIndex = GetImageIndex(column);
+ this.tvw_field.Nodes.Add(Tnode);
+ //OSMyNode Tnode2 = new OSMyNode();
+ //Tnode2 = Tnode;
+ Tnode = new OSMyNode();
+ Tnode.Value = column;
+ //Tnode.Text = column.Name;
+ Tnode.Text = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ToolTipText = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ImageIndex = GetImageIndex(column);
+ Tnode.SelectedImageIndex = GetImageIndex(column);
+ this.tvw_field_where.Nodes.Add(Tnode);
+ }
+ this.btn_CodeGenerator.Enabled = true;
+ this.bun_back.Enabled = true;
+ this.llab_checkAllorNot.Enabled = true;
+ this.llab_checkAllorNot_Click1.Enabled = true;
+ }
+ private int GetImageIndex(Column column)
+ {
+ if (column.PrimaryKey)
+ {
+ return (int)DBImage.PRIMARY_KEY;
+ }
+ else if (column.ForeignKey)
+ {
+ return (int)DBImage.FOREIGN_KEY;
+ }
+ else
+ {
+ return (int)DBImage.FIELD;
+ }
+ }
+ ///
+ /// Database's objects image
+ ///
+ public enum DBImage : int
+ {
+ TABLE = 0,
+ FIELD = 1,
+ PRIMARY_KEY = 2,
+ FOREIGN_KEY = 3
+ }
+ private string ListarAtributos(Column column)
+ {
+ string attributes = String.Empty;
+
+ if (column.PrimaryKey)
+ {
+ attributes += "PK, ";
+ }
+
+ if (column.ForeignKey)
+ {
+ attributes += "FK, ";
+ }
+
+ if (column.CharacterMaximumLength != null)
+ {
+ attributes += column.Type + "(" + column.CharacterMaximumLength + "), ";
+ }
+ else
+ {
+ attributes += column.Type + ", ";
+ }
+
+ attributes += (column.Nullable) ? "null" : "not null";
+
+ return attributes;
+ }
+ public void NodecheckAllorNot(Boolean checkstate,System.Windows.Forms.TreeView Trv )
+ {
+
+ foreach (OSMyNode node in Trv.Nodes)
+ {
+ node.Checked = checkstate;
+ }
+
+ }
+ int checkT = 1;
+ private void llab_checkAllorNot_Click(object sender, EventArgs e)
+ {
+ if (checkT == 1)
+ {
+
+ NodecheckAllorNot(false,this.tvw_field);
+ if (type == 3)
+ setIsnull_insert(this.tvw_field);
+ checkT = 0;
+ }
+ else
+ {
+ NodecheckAllorNot(true,this.tvw_field);
+ checkT = 1;
+ }
+ }
+ int checkT2 = 1;
+ private void llab_checkAllorNot_Click1_Click(object sender, EventArgs e)
+ {
+ if (checkT2 == 1)
+ {
+
+ NodecheckAllorNot(false, this.tvw_field_where);
+ checkT2 = 0;
+ }
+ else
+ {
+ NodecheckAllorNot(true, this.tvw_field_where);
+
+ checkT2 = 1;
+ }
+ }
+ TextEditorControl txtEditControl;
+ //string Filepath_ADOCode = @"..\..\config\tempADO_Code.cs";
+ void loadtxtEdit() {
+ //this.panel3.Controls.Clear();
+ this.groupBox1.Hide();
+ this.groupBox2.Hide();
+ if (txtEditControl == null)
+ {
+ txtEditControl = new TextEditorControl();
+ txtEditControl.Dock = DockStyle.Fill;
+
+ txtEditControl.Document.HighlightingStrategy =
+ ICSharpCode.TextEditor.Document.HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
+ txtEditControl.Encoding = System.Text.Encoding.Default;
+ this.panel3.Controls.Add(txtEditControl);
+ //txtEditControl.LoadFile(Filepath_ADOCode);
+ }
+ else {
+ this.panel3.Controls.Remove(txtEditControl);
+ txtEditControl = new TextEditorControl();
+ txtEditControl.Dock = DockStyle.Fill;
+ txtEditControl.Document.HighlightingStrategy =
+ ICSharpCode.TextEditor.Document.HighlightingStrategyFactory.CreateHighlightingStrategy("C#");
+ txtEditControl.Encoding = System.Text.Encoding.Default;
+ this.panel3.Controls.Add(txtEditControl);
+ //txtEditControl.LoadFile(Filepath_ADOCode);
+ }
+
+
+ }
+
+ private void btn_CodeGenerator_Click(object sender, EventArgs e)
+ {
+ lb_state.Text = "";
+ string sql = "";
+ string Parameter = "";
+ if (type == 1)
+ {
+ //string selectsql = GetrTablefieldSelectSQL(this.tvw_field, this.tvw_field_where);
+ //MessageBox.Show(selectsql);
+ //string ParmSelect = GetrTablefieldSqlParameterSQL_select(this.tvw_field_where);
+ //MessageBox.Show(ParmSelect);
+ if(!GetMParameterIsCheck(this.tvw_field)){
+ lb_state.Text="Please choose to select the field.";
+ return;
+ }
+ loadtxtEdit();
+ sql = GetrTablefieldSelectSQL(this.tvw_field, this.tvw_field_where);
+ Parameter = GetrTablefieldSqlParameterSQL_select(this.tvw_field_where);
+ string rs = "public DataTable " + this.txt_methodsname.Text + "(" + GetMParameter(this.tvw_field_where) + ")\r\n";
+ rs += "{\r\n";
+ rs += " string sql=\"" + sql + "\";\r\n";
+ rs += Parameter + "\r\n";
+ rs += " return SqlHelper.ExecuteDataTable(SqlHelper.ConnectionString, CommandType.Text, sql, spms);";
+ rs += "\r\n}\r\n";
+ this.txtEditControl.Text = rs;
+ //using (StreamWriter sw = File.CreateText(Filepath_ADOCode))
+ //{
+
+ // sw.WriteLine(rs);
+ // sw.Close();
+ //}
+
+ }
+ if (type == 2) {
+ //string updatesql = GetrTablefieldUpdateSQL(this.tvw_field, this.tvw_field_where);
+ //MessageBox.Show(updatesql);
+ //string ParmUpdate = GetrTablefieldSqlParameterSQL_update(this.tvw_field, this.tvw_field_where);
+ //MessageBox.Show(ParmUpdate);
+ if(!GetMParameterIsCheck(this.tvw_field)){
+ lb_state.Text="Please choose to update the field.";
+ return;
+ }
+ if(!GetMParameterIsCheck(this.tvw_field_where)){
+ lb_state.Text="Please choose to update the condition.";
+ return;
+ }
+ loadtxtEdit();
+ sql =GetrTablefieldUpdateSQL(this.tvw_field, this.tvw_field_where);
+ Parameter =GetrTablefieldSqlParameterSQL_update(this.tvw_field , this.tvw_field_where);
+ string rs = "public bool " + this.txt_methodsname.Text + "(" + GetMParameter_update(this.tvw_field, this.tvw_field_where) + ")\r\n";
+ rs += "{\r\n";
+ rs += " string sql=\"" + sql + "\";\r\n";
+ rs += Parameter + "\r\n";
+ rs += @" if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;";
+ rs += "\r\n}\r\n";
+ this.txtEditControl.Text = rs;
+ //using (StreamWriter sw = File.CreateText(Filepath_ADOCode))
+ //{
+
+ // sw.WriteLine(rs);
+ // sw.Close();
+ //}
+
+ }
+ if (type == 3)
+ {
+ //string insertsql = GetrTablefieldInsertSQL(this.tvw_field);
+ //MessageBox.Show(insertsql);
+ //string ParmInsert = GetrTablefieldSqlParameterSQL_Insert(this.tvw_field);
+ //MessageBox.Show(ParmInsert);
+ if(!GetMParameterIsCheck(this.tvw_field)){
+ lb_state.Text="Please choose to insert the field.";
+ return;
+ }
+ loadtxtEdit();
+ sql = GetrTablefieldInsertSQL(this.tvw_field);
+ Parameter = GetrTablefieldSqlParameterSQL_Insert(this.tvw_field);
+ string rs = "public bool " + this.txt_methodsname.Text + "(" + GetMParameter(this.tvw_field) + ")\r\n";
+ rs += "{\r\n";
+ rs += " string sql=\"" + sql + "\";\r\n";
+ rs += Parameter + "\r\n";
+ rs += @" if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;";
+ rs += "\r\n}\r\n";
+ this.txtEditControl.Text = rs;
+ // using (StreamWriter sw = File.CreateText(Filepath_ADOCode))
+ //{
+
+ // sw.WriteLine(rs);
+ // sw.Close();
+ //}
+ }
+ if (type == 4) {
+ //string deletesql = GetrTablefieldDeleteSQL(this.tvw_field_where);
+ //MessageBox.Show(deletesql);
+ //string ParmDelete = GetrTablefieldSqlParameterSQL_select(this.tvw_field_where);
+ //MessageBox.Show(ParmDelete);
+ if(!GetMParameterIsCheck(this.tvw_field_where)){
+ lb_state.Text="Please choose to delete the condition.";
+ return;
+ }
+ loadtxtEdit();
+ sql= GetrTablefieldDeleteSQL(this.tvw_field_where);
+ Parameter = GetrTablefieldSqlParameterSQL_select(this.tvw_field_where);
+ string rs = "public bool " + this.txt_methodsname.Text + "(" + GetMParameter(this.tvw_field_where) + ")\r\n";
+ rs += "{\r\n";
+ rs += " string sql=\"" + sql + "\";\r\n";
+ rs += Parameter + "\r\n";
+ rs += @" if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;";
+ rs += "\r\n}\r\n";
+ this.txtEditControl.Text = rs;
+ //using (StreamWriter sw = File.CreateText(Filepath_ADOCode))
+ //{
+
+ // sw.WriteLine(rs);
+ // sw.Close();
+ //}
+ }
+
+ //loadtxtEdit();
+ //txtEditControl.LoadFile(Filepath_ADOCode);
+ //txtEditControl.Text = "aa";
+ }
+
+ public string GetrTablefieldSqlParameterSQLLength(string dbsql)
+ {
+
+ string rs = "";
+ if (dbsql == "varchar" || dbsql == "nvarchar" || dbsql == "char")
+ {
+ rs = ", -1 ";
+ }
+ return rs;
+ }
+ // 生成数据格式Select
+ public string GetrTablefieldSelectSQL(System.Windows.Forms.TreeView tvw_field, System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "use " + Pidnode_dbname + " select ";
+ string strwhere = " where ";
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ rs += item.Name + ",";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ strwhere += "" + item.Name + "=@" + item.Name + ",";
+ }
+ }
+ if (strwhere.EndsWith(","))
+ strwhere = strwhere.Remove(strwhere.Length - 1);
+ rs += " from " + " [" + Pidnode_dbname + "].[dbo].[" + Pidnode_TBname + "] " + "";
+ rs += strwhere;
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL_select(System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =" + item.Name + " },";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ rs += "\r\n ";
+ rs += " };";
+ return rs;
+
+ }
+ //delete
+ public string GetrTablefieldDeleteSQL(System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "use " + Pidnode_dbname + " delete " + " [" + Pidnode_dbname + "].[dbo].[" + Pidnode_TBname + "] " + "";
+ string strwhere = " where ";
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ strwhere += "" + item.Name + "=@" + item.Name + ",";
+ }
+ }
+ if (strwhere.EndsWith(","))
+ strwhere = strwhere.Remove(strwhere.Length - 1);
+ rs += strwhere;
+ return rs;
+ }
+ // update
+ public string GetrTablefieldUpdateSQL(System.Windows.Forms.TreeView tvw_field, System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "use " + Pidnode_dbname + " update " + " [" + Pidnode_dbname + "].[dbo].[" + Pidnode_TBname + "] " + " set ";
+ string strwhere = " where ";
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ rs += "" + item.Name + "=@n_" + item.Name + ",";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ strwhere += "" + item.Name + "=@o_" + item.Name + ",";
+ }
+ }
+ if (strwhere.EndsWith(","))
+ strwhere = strwhere.Remove(strwhere.Length - 1);
+ rs += strwhere;
+ return rs;
+ }
+ public string GetrTablefieldSqlParameterSQL_update(System.Windows.Forms.TreeView tvw_field,System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@n_" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =n_" + item.Name + " },";
+ }
+ }
+ if (!rs.EndsWith(","))
+ //rs = rs.Remove(rs.Length - 1);
+ rs += ",";
+ rs += "\r\n ";
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@o_" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =o_" + item.Name + " },";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ rs += "\r\n ";
+
+ rs += " };";
+ return rs;
+
+ }
+ public string GetMParameter_update(System.Windows.Forms.TreeView tvw_field,System.Windows.Forms.TreeView tvw_field_where)
+ {
+ string rs = "";
+ Data.TableData tabdata = new Data.TableData();
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, Pidnode_TBname);
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ foreach (DataColumn dcloumn in dt.Columns)
+ {
+ if (item.Name == dcloumn.ColumnName)
+ {
+ rs += dcloumn.DataType.ToString() + " n_" + item.Name + ",";
+ }
+ }
+ }
+ }
+ if (!rs.EndsWith(","))
+ rs += ",";
+ foreach (OSMyNode node in tvw_field_where.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ foreach (DataColumn dcloumn in dt.Columns)
+ {
+ if (item.Name == dcloumn.ColumnName)
+ {
+ rs += dcloumn.DataType.ToString() + " o_" + item.Name + ",";
+ }
+ }
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ return rs;
+ }
+ //insert
+ public void setIsnull_insert(System.Windows.Forms.TreeView tvw_field)
+ {
+
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (!item.Nullable)
+ {
+ node.Checked = true;
+ }
+ }
+ }
+ public string GetrTablefieldInsertSQL(System.Windows.Forms.TreeView tvw_field)
+ {
+ string rs = "use " + Pidnode_dbname + " insert into " + " [" + Pidnode_dbname + "].[dbo].[" + Pidnode_TBname + "] " + "(";
+ string strvalue = " values(";
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ rs += item.Name + ",";
+ strvalue += "@" + item.Name + ",";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ if (strvalue.EndsWith(","))
+ strvalue = strvalue.Remove(strvalue.Length - 1);
+ rs += ")";
+ rs += strvalue + ")";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL_Insert(System.Windows.Forms.TreeView tvw_field)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ Column item = (Column)node.Value;
+ if (node.Checked == true)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =" + item.Name + " },";
+ }
+ }
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ rs += "\r\n ";
+ rs += " };";
+ return rs;
+
+ }
+ //
+ public string GetMParameter(System.Windows.Forms.TreeView tvw_field)
+ {
+ string rs = "";
+ Data.TableData tabdata = new Data.TableData();
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, Pidnode_TBname);
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ Column item = (Column)node.Value;
+ foreach (DataColumn dcloumn in dt.Columns)
+ {
+ if (item.Name == dcloumn.ColumnName)
+ {
+ rs += dcloumn.DataType.ToString() + " " + item.Name + ",";
+ }
+ }
+ }
+ }
+ if (rs.EndsWith(","))
+ rs= rs.Remove(rs.Length - 1);
+ return rs;
+ }
+
+ private void F_ADO_CodeGenerator_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (txtEditControl != null)
+ {
+ txtEditControl.Dispose();
+ }
+ //this.Close();
+ }
+
+ private void bun_back_Click(object sender, EventArgs e)
+ {
+ this.groupBox1.Show();
+ this.groupBox2.Show();
+ this.panel3.Controls.Remove(txtEditControl);
+ }
+ public bool GetMParameterIsCheck(System.Windows.Forms.TreeView tvw_field)
+ {
+ Data.TableData tabdata = new Data.TableData();
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, Pidnode_TBname);
+ bool rs = false;
+ foreach (OSMyNode node in tvw_field.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ rs = true;
+ }
+ }
+ return rs;
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.resx
new file mode 100644
index 0000000..c2d815b
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_ADO_CodeGenerator.resx
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACq
+ DgAAAk1TRnQBSQFMAgEBCAEAAewBAAHsAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AJgAJZgHs
+ GAABGwGZARwBcwNLAXMBHAHxFAABZgf/AfABbRcAAZkBcwF0AXkBmQGaAXoBUgExAVEBSwGZAgAB7AHr
+ AW0B6gETARUBEQEPBw4CAAFmAf8BbAHxArwB8wFDAbwBZgH3Ae0BrgQAA60BiwWGAmYBhgQAAXMBWAF6
+ AZoBoAGaAXoBWQEyAjEBSgIAAewBmgF6AVgFUgFRAUsBKgJLAQ8CAAFmAf8BkQHsAv8BDQH/AbsBbAH0
+ ARkBkQQAAa0C9ALzARkB8QIZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFKAgAB7AGgApoEegFZ
+ AVMCUgExAUsBEQIAAWYB/wHxAf8C8AH/AfMBBwFmAhkBkQQAAa0B/weLAgkBhgQAAXMBWQF6AZoBoAGa
+ AXoBWQEyAjEBSgIAAewBGgGgApoDegJZAVMCUgEqAUMCAAFmAf8BvAP/AfQB/wG8AWwB/wEZAZEEAAGt
+ Af8C9ALzARkB8wEZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgAB7QHDAqACmgN6AlkBUwFS
+ ATEBFAIAAWYB/wHxAf8B8QHdAf8B8wEHAWYB8wEZAZEEAAGtAf8CiwH0AosCGQLdAYYEAAFzAVkBegGa
+ AaABmgF6AVkBMgIxAUsCAAHtAcMCoAKaBHoCWQFSATEBEgIAAWYB/wGRAe0C/wENAf8BvAFsAf8B8wGR
+ BAABrQL/AvQC8wIZAd0BGQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgABHAPDAaACmgR6AVkBUgEx
+ AeoCAAFmAf8BbQH/AvEB/wENAfIBZgL0AZEEAAHUBP8B9ALzARkB8QEZAYYEAAFzAVkBegGaAaABmgF6
+ AVkBMgIxAUsCAAEcA8MCoAKaBHoBWQFSAesCAAFmAf8B8AX/AfABbQH/ARkBkQQAAdUB/wKLAfQB/wH0
+ ARkB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAUsCAAEcBcMCoAKaBHoB6wIACWYB7AH/ARkBkQQA
+ AdUB9gX/AfQB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAW4CAAocBO0B8gQAAfAJ/wGRBAABtALV
+ Ac8GrQGLAa0EAAEcAXoBoATDAaABmgF6AVgBbgIAARwBGgLDAaABmgEcAfELAAQJAtwB1gTVBAABtAMJ
+ AdwD1gPVAa0EAAF0CsMBbgIAAfQFHAH0DAABCQIZAt0FCQHVBAABtQHVA7QCzgWtBAABGgKZAhoCwwIa
+ AZkBHAGZFQAFCQLcAdYB3AHWAdUUAAH/ARsBGgGZARwBdAFzAhwBmQEbAf8yACf/AksO/wHrAW0t/wGZ
+ AVIBSw3/AQcB7AFtGf8B9wtmCP8BdAFZATEBSwz/Au0CbQj/AfcLZgT/AfcB/wLyAfEC3QQJAWYI/wF0
+ AVkBSw3/Au0BbQHyCP8B7wH/AvIB8QHwAbwDCQG1AWYE/wH3A/8E7AH/ARkBCQFmCP8BdAFZATEBSwz/
+ Au0B6gFtCP8B7wH/AbwBBwG7AfQBuwK1ARkBtQFmBP8B9wT/A/QB/wEZAQkBZgj/AXQBWQExAUsM/wGS
+ Ae0B6wFtCP8BuwT/AvQDGQG1AWYE/wH3A/8E7AL/Ad0BZgj/AXQBWQFKDf8BkgHtAeoJ/wG7Af8DvAH/
+ A7sBGQG7AWYE/wG1CP8B9AHdAWYH/wGZAXQBWQFKARwK/wH0Ae8B7QGSAeoB9wH0B/8Buwb/AvQBGQEH
+ AWYE/wHvA/8E7AH/AfQB8QFmBv8BmQF0AXoBMgExAUoBcwj/AfQB7wHsAe8B6wFtAeoB7AHzBv8BuwH/
+ A7wB/wG8AQcBuwH0AQcBZgT/AbUJ/wHyAWYF/wGZAXQBegEyAVkCMQFKAXQH/wEHAe0BBwLsAesBbQHq
+ AZIG/wG7B/8C9AEZAWYE/wG7A/8E7AL/AfIBZgX/AZkBwwRZAjEBbgf/Ae8B8QGSAewCkgHrAW0B6wb/
+ A9YC1QK0Ba0E/wG7Cv8BZgX/ARwBwwF6AVIBHAFZAjEBbgf/Ae8B8gHvAewCkgHrAW0B6wb/AdYBCQTc
+ AdYE1QGtBP8D1gG1BLQBzwOtBf8BmQHDAXoBSwHzARwCMQFzB/8B7wHzAe8B6gHzAZIB7AFtAewG/wXW
+ AdUDtAOtBP8B1gIJAtwB1gXVAa0F/wGZAcMBmgFSAUsDUgF0B/8BBwHzAfAB7AHqA+wB9xb/A9YBtQS0
+ Ac8DrQb/AZkCwwGaAVkBUgF0CP8B9AEHAvMB8AGSAewBkgHzKf8BGgGZARwBdAGZC/8BvAHvAfcB7QHv
+ AfQF/wFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+BAAT/AYABHwL/AeABBwL/
+ AYABHwL/AcABAwEAAQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEA
+ AQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEBgAEDAcABAwHA
+ AQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEB4AEDAcABAwHAAQMBAAH/AeABAwHA
+ AQMBwAEDAQEB/wHgAQMBwAEDAcABAwL/AeABAwL/AcABAwb/gAAL
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.Designer.cs
new file mode 100644
index 0000000..3c88eba
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.Designer.cs
@@ -0,0 +1,301 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class F_CodeGenerator
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_CodeGenerator));
+ this.lstImage = new System.Windows.Forms.ImageList(this.components);
+ this.pBar = new System.Windows.Forms.ProgressBar();
+ this.btn_browse = new System.Windows.Forms.Button();
+ this.txt_foldPath = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.llab_checkAllorNot = new System.Windows.Forms.LinkLabel();
+ this.txt_namespace = new System.Windows.Forms.TextBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.btn_CodeGenerator_DLL = new System.Windows.Forms.Button();
+ this.btn_Close = new System.Windows.Forms.Button();
+ this.lab_pBar = new System.Windows.Forms.Label();
+ this.chk_Linq = new System.Windows.Forms.CheckBox();
+ this.chk_ADO = new System.Windows.Forms.CheckBox();
+ this.btn_CodeGenerator = new System.Windows.Forms.Button();
+ this.chk_isEntity = new System.Windows.Forms.CheckBox();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.treeView1 = new System.Windows.Forms.TreeView();
+ this.panel1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // lstImage
+ //
+ this.lstImage.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("lstImage.ImageStream")));
+ this.lstImage.TransparentColor = System.Drawing.Color.Transparent;
+ this.lstImage.Images.SetKeyName(0, "table-icon.png");
+ this.lstImage.Images.SetKeyName(1, "field-icon.png");
+ this.lstImage.Images.SetKeyName(2, "primary_key-icon.png");
+ this.lstImage.Images.SetKeyName(3, "foreign_key-icon.png");
+ this.lstImage.Images.SetKeyName(4, "db.png");
+ this.lstImage.Images.SetKeyName(5, "00060.png");
+ this.lstImage.Images.SetKeyName(6, "views.png");
+ this.lstImage.Images.SetKeyName(7, "proc.png");
+ //
+ // pBar
+ //
+ this.pBar.Location = new System.Drawing.Point(3, 15);
+ this.pBar.Name = "pBar";
+ this.pBar.Size = new System.Drawing.Size(474, 19);
+ this.pBar.TabIndex = 2;
+ //
+ // btn_browse
+ //
+ this.btn_browse.Location = new System.Drawing.Point(378, 12);
+ this.btn_browse.Name = "btn_browse";
+ this.btn_browse.Size = new System.Drawing.Size(74, 23);
+ this.btn_browse.TabIndex = 3;
+ this.btn_browse.Text = "browse";
+ this.btn_browse.UseVisualStyleBackColor = true;
+ this.btn_browse.Click += new System.EventHandler(this.btn_browse_Click);
+ //
+ // txt_foldPath
+ //
+ this.txt_foldPath.Location = new System.Drawing.Point(91, 12);
+ this.txt_foldPath.Name = "txt_foldPath";
+ this.txt_foldPath.Size = new System.Drawing.Size(255, 21);
+ this.txt_foldPath.TabIndex = 4;
+ this.txt_foldPath.Text = "C:\\Users\\Administrator\\Desktop\\";
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(11, 15);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(65, 12);
+ this.label1.TabIndex = 5;
+ this.label1.Text = "Save Path:";
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.llab_checkAllorNot);
+ this.panel1.Controls.Add(this.txt_namespace);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.panel2);
+ this.panel1.Controls.Add(this.groupBox1);
+ this.panel1.Controls.Add(this.txt_foldPath);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Controls.Add(this.btn_browse);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(480, 370);
+ this.panel1.TabIndex = 6;
+ //
+ // llab_checkAllorNot
+ //
+ this.llab_checkAllorNot.AutoSize = true;
+ this.llab_checkAllorNot.Location = new System.Drawing.Point(367, 51);
+ this.llab_checkAllorNot.Name = "llab_checkAllorNot";
+ this.llab_checkAllorNot.Size = new System.Drawing.Size(101, 12);
+ this.llab_checkAllorNot.TabIndex = 10;
+ this.llab_checkAllorNot.TabStop = true;
+ this.llab_checkAllorNot.Text = "check all or not";
+ this.llab_checkAllorNot.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.llab_checkAllorNot_LinkClicked);
+ this.llab_checkAllorNot.Click += new System.EventHandler(this.llab_checkAllorNot_LinkClicked);
+ //
+ // txt_namespace
+ //
+ this.txt_namespace.Location = new System.Drawing.Point(91, 41);
+ this.txt_namespace.Name = "txt_namespace";
+ this.txt_namespace.Size = new System.Drawing.Size(255, 21);
+ this.txt_namespace.TabIndex = 9;
+ this.txt_namespace.Text = "MeteorCode";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(9, 41);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(59, 12);
+ this.label2.TabIndex = 8;
+ this.label2.Text = "NameSpace";
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.btn_CodeGenerator_DLL);
+ this.panel2.Controls.Add(this.btn_Close);
+ this.panel2.Controls.Add(this.lab_pBar);
+ this.panel2.Controls.Add(this.chk_Linq);
+ this.panel2.Controls.Add(this.chk_ADO);
+ this.panel2.Controls.Add(this.btn_CodeGenerator);
+ this.panel2.Controls.Add(this.chk_isEntity);
+ this.panel2.Controls.Add(this.pBar);
+ this.panel2.Location = new System.Drawing.Point(3, 298);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(477, 72);
+ this.panel2.TabIndex = 7;
+ //
+ // btn_CodeGenerator_DLL
+ //
+ this.btn_CodeGenerator_DLL.Location = new System.Drawing.Point(192, 40);
+ this.btn_CodeGenerator_DLL.Name = "btn_CodeGenerator_DLL";
+ this.btn_CodeGenerator_DLL.Size = new System.Drawing.Size(116, 23);
+ this.btn_CodeGenerator_DLL.TabIndex = 8;
+ this.btn_CodeGenerator_DLL.Text = "CodeGeneratorDLL";
+ this.btn_CodeGenerator_DLL.UseVisualStyleBackColor = true;
+ this.btn_CodeGenerator_DLL.Visible = false;
+ this.btn_CodeGenerator_DLL.Click += new System.EventHandler(this.btn_CodeGenerator_DLL_Click);
+ //
+ // btn_Close
+ //
+ this.btn_Close.Location = new System.Drawing.Point(406, 41);
+ this.btn_Close.Name = "btn_Close";
+ this.btn_Close.Size = new System.Drawing.Size(59, 23);
+ this.btn_Close.TabIndex = 7;
+ this.btn_Close.Text = "Close";
+ this.btn_Close.UseVisualStyleBackColor = true;
+ this.btn_Close.Click += new System.EventHandler(this.btn_Close_Click);
+ //
+ // lab_pBar
+ //
+ this.lab_pBar.AutoSize = true;
+ this.lab_pBar.ForeColor = System.Drawing.Color.Red;
+ this.lab_pBar.Location = new System.Drawing.Point(74, 0);
+ this.lab_pBar.Name = "lab_pBar";
+ this.lab_pBar.Size = new System.Drawing.Size(29, 12);
+ this.lab_pBar.TabIndex = 6;
+ this.lab_pBar.Text = "pBar";
+ //
+ // chk_Linq
+ //
+ this.chk_Linq.AutoSize = true;
+ this.chk_Linq.Location = new System.Drawing.Point(124, 45);
+ this.chk_Linq.Name = "chk_Linq";
+ this.chk_Linq.Size = new System.Drawing.Size(48, 16);
+ this.chk_Linq.TabIndex = 5;
+ this.chk_Linq.Text = "Linq";
+ this.chk_Linq.UseVisualStyleBackColor = true;
+ //
+ // chk_ADO
+ //
+ this.chk_ADO.AutoSize = true;
+ this.chk_ADO.Location = new System.Drawing.Point(76, 45);
+ this.chk_ADO.Name = "chk_ADO";
+ this.chk_ADO.Size = new System.Drawing.Size(42, 16);
+ this.chk_ADO.TabIndex = 5;
+ this.chk_ADO.Text = "ADO";
+ this.chk_ADO.UseVisualStyleBackColor = true;
+ //
+ // btn_CodeGenerator
+ //
+ this.btn_CodeGenerator.Location = new System.Drawing.Point(314, 41);
+ this.btn_CodeGenerator.Name = "btn_CodeGenerator";
+ this.btn_CodeGenerator.Size = new System.Drawing.Size(86, 23);
+ this.btn_CodeGenerator.TabIndex = 4;
+ this.btn_CodeGenerator.Text = "Generator";
+ this.btn_CodeGenerator.UseVisualStyleBackColor = true;
+ this.btn_CodeGenerator.Click += new System.EventHandler(this.btn_CodeGenerator_Click);
+ //
+ // chk_isEntity
+ //
+ this.chk_isEntity.AutoSize = true;
+ this.chk_isEntity.Location = new System.Drawing.Point(10, 44);
+ this.chk_isEntity.Name = "chk_isEntity";
+ this.chk_isEntity.Size = new System.Drawing.Size(60, 16);
+ this.chk_isEntity.TabIndex = 3;
+ this.chk_isEntity.Text = "Entity";
+ this.chk_isEntity.UseVisualStyleBackColor = true;
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.treeView1);
+ this.groupBox1.Location = new System.Drawing.Point(0, 62);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(480, 233);
+ this.groupBox1.TabIndex = 6;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "TableAndView";
+ //
+ // treeView1
+ //
+ this.treeView1.CheckBoxes = true;
+ this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.treeView1.ImageIndex = 0;
+ this.treeView1.ImageList = this.lstImage;
+ this.treeView1.Location = new System.Drawing.Point(3, 17);
+ this.treeView1.Name = "treeView1";
+ this.treeView1.SelectedImageIndex = 0;
+ this.treeView1.Size = new System.Drawing.Size(474, 213);
+ this.treeView1.TabIndex = 0;
+ //
+ // F_CodeGenerator
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(480, 370);
+ this.Controls.Add(this.panel1);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "F_CodeGenerator";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "F_CodeGenerator";
+ this.Load += new System.EventHandler(this.F_CodeGenerator_Load);
+ this.Shown += new System.EventHandler(this.F_CodeGenerator_Shown);
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.panel2.ResumeLayout(false);
+ this.panel2.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ImageList lstImage;
+ private System.Windows.Forms.ProgressBar pBar;
+ private System.Windows.Forms.Button btn_browse;
+ private System.Windows.Forms.TextBox txt_foldPath;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.Button btn_CodeGenerator;
+ private System.Windows.Forms.CheckBox chk_isEntity;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.TreeView treeView1;
+ private System.Windows.Forms.CheckBox chk_Linq;
+ private System.Windows.Forms.CheckBox chk_ADO;
+ private System.Windows.Forms.Label lab_pBar;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox txt_namespace;
+ private System.Windows.Forms.LinkLabel llab_checkAllorNot;
+ private System.Windows.Forms.Button btn_Close;
+ private System.Windows.Forms.Button btn_CodeGenerator_DLL;
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.cs
new file mode 100644
index 0000000..93dc052
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.cs
@@ -0,0 +1,882 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using CsharpOSMeteorCodeGenerator.Model;
+using System.IO;
+using System.Threading;
+using Microsoft.CSharp;
+using System.CodeDom.Compiler;
+using System.CodeDom;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class F_CodeGenerator : Form
+ {
+ public F_CodeGenerator()
+ {
+ InitializeComponent();
+ }
+ //创建一个委托,是为访问TextBox控件服务的。
+ public delegate void UpdateTxt();
+ //定义一个委托变量
+ public UpdateTxt updateTxt;
+ public object selectnode { get; set; }
+ string Pidnode_dbname = "";
+ List list_tab;
+ List list_tab2;
+
+ public void BFrom_load() {
+ Thread.Sleep(50);
+ this.BeginInvoke(updateTxt);
+ }
+
+ public void f_code_load() {
+ this.btn_browse.Enabled=false;
+ this.llab_checkAllorNot.Enabled = false;
+ this.btn_CodeGenerator.Enabled = false;
+ this.btn_Close.Enabled = false;
+ OSMyNode node = (OSMyNode)this.selectnode;
+ if (node != null)
+ if (node.Parent == null)
+ {
+ Pidnode_dbname = node.Text;
+ this.pBar.Value = 1;
+ Data.GetListTables glt = new Data.GetListTables();
+ list_tab = glt.ListTables(Model.EModel.connBuilder, node.Text);
+ list_tab2 = glt.ListViews(Model.EModel.connBuilder, node.Text);
+ int list_count=list_tab.Count + list_tab2.Count;
+ this.pBar.Maximum = list_count+1;
+
+ if (list_count <= 0) {
+ MessageBox.Show("this db is null");
+ this.Close();
+ }
+ this.lab_pBar.Text = "this table and views load start";
+ foreach (Table table in list_tab)
+ {
+ node = new OSMyNode();
+ node.Text = table.Name;
+ node.ToolTipText = table.Name;
+ node.Value = table;
+ node.ImageIndex = 5;
+ node.SelectedImageIndex = 5;
+ node.Checked = true;
+ treeView1.Nodes.Add(node);
+ this.pBar.Value++;
+ }
+ foreach (Table table in list_tab2)
+ {
+ node = new OSMyNode();
+ node.Text = table.Name;
+ node.Value = table;
+ node.ToolTipText = table.Name;
+ node.ImageIndex = 6;
+ node.SelectedImageIndex = 6;
+ node.Checked = true;
+ treeView1.Nodes.Add(node);
+ this.pBar.Value++;
+ }
+ this.lab_pBar.Text = "this table and views load end";
+ //checkedListBox_CheckListBoxALl(this.checkedListBox1,true);
+ this.btn_browse.Enabled = true;
+ this.llab_checkAllorNot.Enabled = true;
+ this.btn_CodeGenerator.Enabled = true;
+ this.btn_Close.Enabled = true;
+ }
+ }
+ public void checkedListBox_CheckListBoxALl(System.Windows.Forms.CheckedListBox checkedListBox,Boolean boo )
+ {
+ for (int i = 0; i < checkedListBox.Items.Count; i++)
+ {
+ checkedListBox.SetItemChecked(i, boo);//true就是全选
+ }
+ }
+ private void F_CodeGenerator_Shown(object sender, EventArgs e)
+ {
+ updateTxt = new UpdateTxt(f_code_load);
+ Thread objThread = new Thread(new ThreadStart(delegate
+ {
+ //ThreadMethodTxt();
+ BFrom_load();
+ }));
+ objThread.Start();
+ }
+ private void F_CodeGenerator_Load(object sender, EventArgs e)
+ {
+ this.chk_isEntity.Checked = true;
+ this.chk_ADO.Checked = true;
+ this.chk_Linq.Checked = true;
+
+
+ }
+ private void btn_browse_Click(object sender, EventArgs e)
+ {
+ string foldPath = "";
+ FolderBrowserDialog dialog = new FolderBrowserDialog();
+ dialog.Description = "请选择文件路径";
+ this.pBar.Value = 0;
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+
+ foldPath = dialog.SelectedPath + @"\";
+ this.txt_foldPath.Text = foldPath;
+ if (!String.IsNullOrEmpty(this.txt_foldPath.Text.Trim()))
+ {
+ this.chk_isEntity.Checked = true;
+ this.chk_ADO.Checked = true;
+ this.chk_Linq.Checked = true;
+ }
+ //if (foldPath.Substring(0, 1).ToUpper() == "C")
+ //{
+ // //MessageBox.Show("备份文件不能放在系统盘!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ //}
+ //else
+ //{
+ // if (foldPath != "")
+ // {
+ // //SetTime(0, 50);
+ // //Boolean rs = DBHelper.BackUpDB(@foldPath);
+
+ // //if (rs)
+ // //{
+ // // this.pBar.Value = this.pBar.Maximum;
+ // // Core.User.Insert(Core.User.LoginedUserCode, string.Format(Entity.Const.dbBack, Core.User.LoginedUserCode, "成功"));
+ // // MessageBox.Show("备份成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ // //}
+ // //else
+ // //{
+ // // Core.User.Insert(Core.User.LoginedUserCode, string.Format(Entity.Const.dbBack, Core.User.LoginedUserCode, "失败"));
+ // // MessageBox.Show("备份失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
+ // //}
+ // }
+ //}
+ }
+ }
+
+ private void btn_CodeGenerator_Click(object sender, EventArgs e)
+ {
+ string foldPath= this.txt_foldPath.Text.Trim();
+ if (String.IsNullOrEmpty(foldPath)) {
+ this.lab_pBar.Text=" this SavePath is null";
+ return;
+ }
+ string iswindowsPath = "^[a-zA-Z]{1}:(\\.+)*";
+ System.Text.RegularExpressions.Regex regex=new System.Text.RegularExpressions.Regex(iswindowsPath);
+ if (!regex.Match(foldPath).Success)
+ {
+ this.lab_pBar.Text=" this SavePath is illegal";
+ return;
+ }
+ if (String.IsNullOrEmpty(this.txt_namespace.Text.Trim()))
+ {
+ this.lab_pBar.Text = " this Namespace is null";
+ return;
+ }
+ foldPath += "MeteorCode\\";
+ if (!Directory.Exists(foldPath))
+ {
+ Directory.CreateDirectory(foldPath);
+
+ }
+ //else {
+ // Directory.Delete(foldPath,true);
+ // Directory.CreateDirectory(foldPath);
+ // System.Threading.Thread.Sleep(100);
+ //}
+ if ((this.chk_isEntity.Checked == false && this.chk_ADO.Checked == false && this.chk_Linq.Checked == false))
+ {
+ this.lab_pBar.Text = " Please select a type";
+ }
+ else
+ {
+
+ GeneratorCode(foldPath);
+ if (!String.IsNullOrEmpty(StrEntity))
+ {
+ String str= StrEntity.Replace("MeteorCode", "MeteorEntityCode");
+
+ Codebianyi(str);
+ }
+ }
+ }
+ string StrEntity = String.Empty;
+ string StrADO= String.Empty;
+ string StrLinq = String.Empty;
+ public void GeneratorCode(string filePath)
+ {
+ string Namespace_str = this.txt_namespace.Text.Trim();
+ string Filepath_entity = filePath+"MeteorEntity.cs";
+ //string Filepath_sql = @"..\..\config\tempsql.cs";
+ string Filepath_adoDAL = filePath + "MeteorADODAL.cs";
+ string Filepath_adoBll = filePath + "MeteorADOBLL.cs";
+ string Filepath_linq = filePath+"MeteorLinq.cs";
+ int countli = 0;
+ if (this.chk_isEntity.Checked)
+ countli = countli + 1;
+ if (this.chk_ADO.Checked)
+ countli = countli + 2;
+ if (this.chk_Linq.Checked)
+ countli = countli + 1;
+ this.pBar.Maximum = treeView1.Nodes.Count * countli;
+ this.pBar.Value = 0;
+ #region 生成实体类
+ if (this.chk_isEntity.Checked)
+ {
+ using (StreamWriter sw = File.CreateText(Filepath_entity))
+ {
+ string Type = "Entity";
+ string Str_stat = String.Format(Model.BaseClass.str_stat, Namespace_str, Type);
+ string Str_end = Model.BaseClass.str_end;
+ sw.WriteLine(Str_stat);
+ StrEntity += Str_stat;
+ foreach (OSMyNode node in treeView1.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ sw.WriteLine(" #region " + node.Text);
+ //StrEntity += " #region " + node.Text;
+ string tablename = node.Text;
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, tablename);
+ string Str_entity = GetrTableAttribute(dt);
+ string WStr_ent = String.Format(Model.BaseClass.strtable_eneity, tablename, Str_entity);
+ sw.WriteLine(WStr_ent);
+ StrEntity += WStr_ent;
+ sw.WriteLine(" #endregion ");
+ //StrEntity += " #endregion ";
+ }
+ this.pBar.Value++;
+ }
+ //foreach (OSMyNode node in treeView1.Nodes)
+ //{
+ // if (node.Checked == true)
+ // {
+ // //MessageBox.Show(node.Text);
+ // //}
+ // //foreach (Table table in list_tab)
+ // //{
+ // string tablename = node.Text;
+ // DataTable dt = Model.EModel.getDatable(Pidnode_dbname, tablename);
+ // sw.WriteLine(" public class " + tablename);
+ // sw.WriteLine(" {");
+ // foreach (DataColumn cloumn in dt.Columns)
+ // {
+ // string rs = "";
+ // rs += " public " + cloumn.DataType.ToString() + " " + cloumn.ColumnName + "{set;get;}\n";
+ // sw.WriteLine(rs);
+ // }
+ // sw.WriteLine(" }");
+ // }
+ //}
+
+ sw.WriteLine(Str_end);
+ StrEntity += Str_end;
+ sw.Close();
+ }
+ }
+ #endregion
+ #region ADO
+ if (this.chk_ADO.Checked)
+ {
+ #region 生成SQLHerper
+ Model.BaseClass.CreateSqlHelper(filePath, Namespace_str);
+ StrADO += Model.BaseClass.GetStrSQLHelper(Namespace_str);
+ #endregion
+ #region ADODAL
+ using (StreamWriter sw = File.CreateText(Filepath_adoDAL))
+ {
+ string Type = "ADODAL";
+ string Str_stat = String.Format(Model.BaseClass.str_stat, Namespace_str, Type);
+ string Str_end = Model.BaseClass.str_end;
+ sw.WriteLine(Str_stat);
+ foreach (OSMyNode node in treeView1.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ string StrTableName = node.Text;
+ sw.WriteLine(" #region " + StrTableName);
+ string StrTablefieldInsertsql = GetrTablefieldInsertSQL(node);
+ string StrTablefieldSelectSQL = GetrTablefieldSelectSQL(node);
+ string StrTablefieldUpdateSQL = GetrTablefieldUpdateSQL(node);
+ string StrTablefieldDeleteSQL = GetrTablefieldDeleteSQL(node);
+ string StrTablefieldSqlParameterSQL = GetrTablefieldSqlParameterSQL(node);
+ string StrTableInsert = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOInsert, StrTableName, StrTablefieldInsertsql, StrTablefieldSqlParameterSQL);
+ string StrTableDelete = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADODelete, StrTableName, StrTablefieldDeleteSQL, StrTablefieldSqlParameterSQL);
+ string StrTableSelect = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOSelect, StrTableName, StrTablefieldSelectSQL);
+ string StrTableUpdate = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOUpdate, StrTableName, StrTablefieldUpdateSQL, StrTablefieldSqlParameterSQL);
+ sw.WriteLine(StrTableInsert);
+ Data.TableData tabdata = new Data.TableData();
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, StrTableName);
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ if (item.PrimaryKey)
+ {
+ foreach (DataColumn dcloumn in dt.Columns)
+ {
+ if (item.Name == dcloumn.ColumnName)
+ {
+ string StrTablefieldSqlParameterSQLL_PrimaryKey = GetrTablefieldSqlParameterSQL_PrimaryKey(node);
+ string StrTableDeleteFromPrimary = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADODeleteFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName, StrTablefieldDeleteSQL, StrTablefieldSqlParameterSQLL_PrimaryKey);
+ sw.WriteLine(StrTableDeleteFromPrimary);
+ string StrTableSelectFromPrimary = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOSelectFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName, StrTablefieldSelectSQL, StrTablefieldSqlParameterSQLL_PrimaryKey);
+ string StrTableSelectFromPrimary_bool = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOSelectFromPrimaryKey_bool, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName, StrTablefieldSelectSQL, StrTablefieldSqlParameterSQLL_PrimaryKey);
+ sw.WriteLine(StrTableSelectFromPrimary);
+ sw.WriteLine(StrTableSelectFromPrimary_bool);
+ string StrTablefieldUpdateSQL_PrimaryKey = GetrTablefieldUpdateSQL_PrimaryKey(node);
+ string StrTablefieldSqlParameterSQL_PrimaryKeyUpdate = GetrTablefieldSqlParameterSQL_PrimaryKeyUpdate(node);
+ string StrTableUpdateFromPrimary = String.Format(Model.BaseClass.BaseTableADODALClass.strtableADOUpdateFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName, StrTablefieldUpdateSQL_PrimaryKey, StrTablefieldSqlParameterSQL_PrimaryKeyUpdate);
+ sw.WriteLine(StrTableUpdateFromPrimary);
+ }
+ }
+ }
+ }
+ sw.WriteLine(StrTableDelete);
+ sw.WriteLine(StrTableSelect);
+ sw.WriteLine(StrTableUpdate);
+ sw.WriteLine(" #endregion");
+ }
+ this.pBar.Value++;
+ }
+ sw.WriteLine(Str_end);
+ sw.Close();
+ }
+#endregion
+ #region ADO_BLL
+ using (StreamWriter sw = File.CreateText(Filepath_adoBll))
+ {
+ string Type = "ADOBLL";
+ string Str_stat = String.Format(Model.BaseClass.str_stat, Namespace_str, Type);
+ string Str_end = Model.BaseClass.str_end;
+ sw.WriteLine(Str_stat);
+ foreach (OSMyNode node in treeView1.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ string StrTableName = node.Text;
+ sw.WriteLine(" #region " + StrTableName);
+ string StrTableInsert = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOInsert, StrTableName);
+ string StrTableDelete = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADODelete, StrTableName);
+ string StrTableSelect = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOSelect, StrTableName);
+ string StrTableSelectALL = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOSelectALL, StrTableName);
+ string StrTableUpdate = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOUpdate, StrTableName);
+ sw.WriteLine(StrTableInsert);
+ Data.TableData tabdata = new Data.TableData();
+ DataTable dt = Model.EModel.getDatable(Pidnode_dbname, StrTableName);
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ if (item.PrimaryKey)
+ {
+ foreach (DataColumn dcloumn in dt.Columns)
+ {
+ if (item.Name == dcloumn.ColumnName)
+ {
+ string strtableADOInsertFromPrimaryKey = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOInsertFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName);
+ sw.WriteLine(strtableADOInsertFromPrimaryKey);
+ string StrTablefieldSqlParameterSQLL_PrimaryKey = GetrTablefieldSqlParameterSQL_PrimaryKey(node);
+ string StrTableDeleteFromPrimary = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADODeleteFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName);
+ sw.WriteLine(StrTableDeleteFromPrimary);
+ string StrTableSelectFromPrimary = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOSelectFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName);
+ string StrTableSelectFromPrimary_bool = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOSelectFromPrimaryKey_bool, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName);
+ sw.WriteLine(StrTableSelectFromPrimary);
+ sw.WriteLine(StrTableSelectFromPrimary_bool);
+ string StrTableUpdateFromPrimary = String.Format(Model.BaseClass.BaseTableADOBLLClass.strtableADOUpdateFromPrimaryKey, StrTableName, dcloumn.DataType.ToString(), dcloumn.ColumnName);
+ sw.WriteLine(StrTableUpdateFromPrimary);
+ }
+ }
+ }
+ }
+ sw.WriteLine(StrTableDelete);
+ sw.WriteLine(StrTableSelectALL);
+ sw.WriteLine(StrTableSelect);
+ sw.WriteLine(StrTableUpdate);
+ sw.WriteLine(" #endregion");
+ }
+ this.pBar.Value++;
+ }
+ sw.WriteLine(Str_end);
+ sw.Close();
+ }
+ #endregion
+ }
+ #endregion
+
+ #region linq
+ if (this.chk_Linq.Checked)
+ {
+ using (StreamWriter sw = File.CreateText(Filepath_linq))
+ {
+ string Type = "Linq";
+ string Str_stat = String.Format(Model.BaseClass.str_stat, Namespace_str, Type);
+ string Str_end = Model.BaseClass.str_end;
+ sw.WriteLine(Str_stat);
+ foreach (OSMyNode node in treeView1.Nodes)
+ {
+ if (node.Checked == true)
+ {
+ string StrTableName = node.Text;
+ sw.WriteLine(" #region " + StrTableName);
+ string linqadd_entity = GetrTableAttribute_linqadd_entity(node);
+ string linqadd = String.Format(Model.BaseClass.BaseTableLinqClass.strtablelinqadd, StrTableName, StrTableName, StrTableName, linqadd_entity, StrTableName);
+ string strtablelinqdelete = String.Format(Model.BaseClass.BaseTableLinqClass.strtablelinqdelete, StrTableName, StrTableName, StrTableName, StrTableName);
+ string linqupdate_entity = GetrTableAttribute_linqupdate_entity(node);
+ string strtablelinqupdate = String.Format(Model.BaseClass.BaseTableLinqClass.strtablelinqupdate, StrTableName, StrTableName, StrTableName, StrTableName, linqupdate_entity);
+ string strtablelinqselect = String.Format(Model.BaseClass.BaseTableLinqClass.strtablelinqselect, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, linqupdate_entity);
+ string strtablelinqselectToIEnumerable = String.Format(Model.BaseClass.BaseTableLinqClass.strtablelinqselectToIEnumerable, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName);
+ sw.WriteLine(strtablelinqselect);
+ sw.WriteLine(strtablelinqselectToIEnumerable);
+ sw.WriteLine(linqadd);
+ sw.WriteLine(strtablelinqdelete);
+ sw.WriteLine(strtablelinqupdate);
+ sw.WriteLine(" #endregion ");
+ }
+ this.pBar.Value++;
+ }
+ sw.WriteLine(Str_end);
+ sw.Close();
+ }
+ }
+ #endregion
+ this.lab_pBar.Text = " Code Generator successful !!!";
+ }
+ #region 生成属性
+ public string GetrTableAttribute(DataTable dt)
+ {
+ string rs = "\r\n";
+ foreach (DataColumn cloumn in dt.Columns)
+ {
+ rs += " public " + cloumn.DataType.ToString() + " " + cloumn.ColumnName + "{set;get;}\r\n";
+ }
+ return rs;
+ }
+ public string GetrTableAttribute(Table tab)
+ {
+ string rs = "\n";
+ foreach (Column item in tab.Columns)
+ {
+ rs += " public " + GetdbType(item.Type) + " " + item.Name + " { get; set ; }\n";
+ }
+ return rs;
+ }
+ public string GetdbType(string type)
+ {
+ string rs = "";
+ switch (type)
+ {
+ case "int": rs = "int"; break;
+ case "tinyint": rs = "int"; break;
+ case "smallint": rs = "int"; break;
+ case "bigint": rs = "int"; break;
+ case "datetime": rs = "DateTime"; break;
+ case "smalldatetime": rs = "DateTime"; break;
+ case "date": rs = "DateTime"; break;
+ case "float": rs = "int"; break;
+ case "decimal": rs = "decimal"; break;
+ case "numeric": rs = "decimal"; break;
+ case "money": rs = "decimal"; break;
+ case "real": rs = "decimal"; break;
+ case "smallmoney": rs = "decimal"; break;
+ case "bit": rs = "bool"; break;
+ default:
+ rs = "string";
+ break;
+ }
+ return rs;
+ }
+ public string GetrTableAttribute_linqadd_entity(OSMyNode node)
+ {
+ string rs = "\r\n";
+ rs += " " + node.Text + " newojb = new " + node.Text + "()\r\n";
+ rs += " {\r\n";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ //string convetType = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2CsharpTypeString(item.Type).ToString();
+ if (tab.Columns.Count == num)
+ {
+ rs += " " + item.Name + "=" + "obj." + item.Name + "\r\n";
+ }
+ else
+ {
+ rs += " " + item.Name + "=" + "obj." + item.Name + ",\r\n";
+ }
+ num++;
+ }
+ rs += " };";
+
+ return rs;
+ }
+ public string GetrTableAttribute_linqupdate_entity(OSMyNode node)
+ {
+ string rs = "\r\n";
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ //string convetType = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2CsharpTypeString(item.Type).ToString();
+ rs += " query." + item.Name + "=" + "obj." + item.Name + ";\r\n";
+ }
+ return rs;
+ }
+ public string GetrTablefieldSelectSQL(OSMyNode node)
+ {
+ string rs = "use " + Pidnode_dbname + " select ";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name;
+ }
+ else
+ {
+ rs += item.Name + ",";
+ }
+ num++;
+
+ }
+ //rs += " from " + node.Text + " where 1=1";
+ rs += " from " + " [" + Pidnode_dbname + "].[dbo].["+node.Text+"] " + "";
+ return rs;
+
+ }
+ public string GetrTablefieldInsertSQL(OSMyNode node)
+ {
+ string rs = "use "+Pidnode_dbname+" insert into " + " [" + Pidnode_dbname + "].[dbo].[" + node.Text + "] " + "(";
+ //Insert INTO table(field1,field2,...) values(value1,value2,...)
+ Table tab = (Table)node.Value;
+ string strvalue = " values(";
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name;
+ strvalue += "@" + item.Name ;
+ }
+ else
+ {
+ rs += item.Name + ",";
+ strvalue += "@" + item.Name + ",";
+ }
+ num++;
+
+ }
+ rs += ")";
+ rs += strvalue + ")";
+ return rs;
+
+ }
+ public string GetrTablefieldUpdateSQL(OSMyNode node)
+ {
+ string rs = "use " + Pidnode_dbname + " update " + " [" + Pidnode_dbname + "].[dbo].[" + node.Text + "] " + " set ";
+ //string rs = "update " + node.Text + " set ";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name + "=" + "@"+item.Name;
+ }
+ else
+ {
+ rs += item.Name + "=" + "@"+item.Name + ",";
+ }
+ num++;
+
+ }
+ rs += "";
+ return rs;
+
+ }
+ public string GetrTablefieldUpdateSQL_PrimaryKey(OSMyNode node)
+ {
+ string rs = "use " + Pidnode_dbname + " update " + " [" + Pidnode_dbname + "].[dbo].[" + node.Text + "] " + " set ";
+ //string rs = "update " + node.Text + " set ";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (item.PrimaryKey)
+ {
+
+ }else{
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name + "=" + "@" + item.Name;
+ }
+ else
+ {
+ rs += item.Name + "=" + "@" + item.Name + ",";
+ }
+ }
+ num++;
+
+ }
+ rs += "";
+ if (rs.EndsWith(","))
+ rs = rs.Remove(rs.Length - 1);
+ return rs;
+
+ }
+
+ public string GetrTablefieldDeleteSQL(OSMyNode node)
+ {
+ string rs = "use " + Pidnode_dbname + " delete " + " [" + Pidnode_dbname + "].[dbo].[" + node.Text + "] " + "";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL(OSMyNode node)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value = obj." + item.Name + " }";
+ }
+ else
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value = obj." + item.Name + " },";
+ }
+ num++;
+
+ }
+ rs += "\r\n ";
+ rs += " };";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL_PrimaryKey(OSMyNode node)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (item.PrimaryKey)
+ {
+ if (tab.Columns.Count == num)
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =" + item.Name + " }";
+ }
+ else
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =" + item.Name + " },";
+ }
+ }
+ num++;
+
+ }
+ rs += "\r\n ";
+ rs += " };";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL_PrimaryKeyUpdate(OSMyNode node)
+ {
+ string rs = "\r\n SqlParameter[] spms = {";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ string value = "obj." + item.Name;
+ if (item.PrimaryKey)
+ value = item.Name;
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value = " + value + " }";
+ }
+ else
+ {
+ string value = "obj." + item.Name;
+ if (item.PrimaryKey)
+ value = item.Name;
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\r\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " " + Sqltypelength.ToString() + ") { Value =" + value + " },";
+ }
+ num++;
+
+ }
+ rs += "\r\n ";
+ rs += " };";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQLLength(string dbsql)
+ {
+
+ string rs = "";
+ if (dbsql == "varchar" || dbsql == "nvarchar" || dbsql == "char")
+ {
+ rs = ", -1 ";
+ }
+ return rs;
+ }
+ #endregion
+ public void NodecheckAllorNot(Boolean checkstate)
+ {
+
+ foreach (OSMyNode node in treeView1.Nodes)
+ {
+ node.Checked = checkstate;
+ }
+
+ }
+
+ private void btn_Close_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+ int checkT = 1;
+ private void llab_checkAllorNot_LinkClicked(object sender, EventArgs e)
+ {
+ if (checkT == 1)
+ {
+
+ NodecheckAllorNot(false);
+ checkT = 0;
+ }
+ else
+ {
+ NodecheckAllorNot(true);
+ checkT = 1;
+ }
+ }
+
+ private void llab_checkAllorNot_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+
+ }
+
+ private void btn_CodeGenerator_DLL_Click(object sender, EventArgs e)
+ {
+
+ //if (!String.IsNullOrEmpty(StrEntity))
+ //{
+
+ //Codebianyi(StrEntity);
+ //}
+ }
+ public void Codebianyi(string StrEntity)
+ {
+ string CodeStr = StrEntity;
+ // 创建编译器对象
+ CSharpCodeProvider p = new CSharpCodeProvider();
+ ICodeCompiler cc = p.CreateCompiler();
+
+ // 设置编译参数
+ CompilerParameters options = new CompilerParameters();
+ options.ReferencedAssemblies.Add("System.dll");
+ options.ReferencedAssemblies.Add("System.Xml.dll");
+ options.ReferencedAssemblies.Add("System.Xml.Linq.dll");
+ options.ReferencedAssemblies.Add("System.Data.dll");
+ options.ReferencedAssemblies.Add("System.Core.dll");
+ options.OutputAssembly = @"C:\Users\Administrator\Desktop\MeteorCode\" + "MeteorEntityCode.dll";
+ // 2. 直接指定源码字符串
+ string code = CodeStr;
+// string code = @"
+// using System;
+// namespace Samples
+// {
+// public class Class1
+// {
+// static void Main(string[] args)
+// {
+// Console.WriteLine(""Hello, World!"");
+// Console.WriteLine(DateTime.Now.ToString());
+// }
+// }
+// }
+// ";
+// string code2 = @"
+// using System;
+// namespace Samples32
+// {
+// public class Class1
+// {
+// static void Main(string[] args)
+// {
+// Console.WriteLine(""Hello, World!"");
+// Console.WriteLine(DateTime.Now.ToString());
+// }
+// }
+// }
+// ";
+// string code = @"
+// using System;
+// namespace Samples
+// {
+//
+// public class sysdiagrams
+// {
+// public System.String name{set;get;}
+// public System.Int32 principal_id{set;get;}
+// public System.Int32 diagram_id{set;get;}
+// public System.Int32 version{set;get;}
+// public System.Byte[] definition{set;get;}
+//
+// }
+// }
+// ";
+ CodeSnippetCompileUnit cu = new CodeSnippetCompileUnit(code);
+ //CodeSnippetCompileUnit cu2 = new CodeSnippetCompileUnit(code2);
+ //CodeCompileUnit[] codecomUnit=new CodeCompileUnit[2];
+ //codecomUnit[0] = cu;
+ //codecomUnit[1] = cu2;
+
+
+ // 开始编译
+ CompilerResults cr = cc.CompileAssemblyFromDom(options, cu);
+ //CompilerResults cr = cc.CompileAssemblyFromDomBatch(options, codecomUnit);
+
+
+ string er = "";
+ // 显示编译信息
+ if (cr.Errors.Count == 0)
+ Console.WriteLine("\"{0}\" compiled ok!", cr.CompiledAssembly.Location);
+ else
+ {
+ Console.WriteLine("Complie Error:");
+ foreach (CompilerError error in cr.Errors)
+ {
+ Console.WriteLine(" {0}", error);
+ er += error;
+ }
+ }
+ if (!String.IsNullOrEmpty(er))
+ MessageBox.Show(er);
+ Console.WriteLine("Press Enter key to exit...");
+ Console.ReadLine();
+ }
+
+
+
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.resx
new file mode 100644
index 0000000..88591c2
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_CodeGenerator.resx
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACq
+ DgAAAk1TRnQBSQFMAgEBCAEAAdQBAAHUAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AJgAJZgHs
+ GAABGwGZARwBcwNLAXMBHAHxFAABZgf/AfABbRcAAZkBcwF0AXkBmQGaAXoBUgExAVEBSwGZAgAB7AHr
+ AW0B6gETARUBEQEPBw4CAAFmAf8BbAHxArwB8wFDAbwBZgH3Ae0BrgQAA60BiwWGAmYBhgQAAXMBWAF6
+ AZoBoAGaAXoBWQEyAjEBSgIAAewBmgF6AVgFUgFRAUsBKgJLAQ8CAAFmAf8BkQHsAv8BDQH/AbsBbAH0
+ ARkBkQQAAa0C9ALzARkB8QIZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFKAgAB7AGgApoEegFZ
+ AVMCUgExAUsBEQIAAWYB/wHxAf8C8AH/AfMBBwFmAhkBkQQAAa0B/weLAgkBhgQAAXMBWQF6AZoBoAGa
+ AXoBWQEyAjEBSgIAAewBGgGgApoDegJZAVMCUgEqAUMCAAFmAf8BvAP/AfQB/wG8AWwB/wEZAZEEAAGt
+ Af8C9ALzARkB8wEZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgAB7QHDAqACmgN6AlkBUwFS
+ ATEBFAIAAWYB/wHxAf8B8QHdAf8B8wEHAWYB8wEZAZEEAAGtAf8CiwH0AosCGQLdAYYEAAFzAVkBegGa
+ AaABmgF6AVkBMgIxAUsCAAHtAcMCoAKaBHoCWQFSATEBEgIAAWYB/wGRAe0C/wENAf8BvAFsAf8B8wGR
+ BAABrQL/AvQC8wIZAd0BGQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgABHAPDAaACmgR6AVkBUgEx
+ AeoCAAFmAf8BbQH/AvEB/wENAfIBZgL0AZEEAAHUBP8B9ALzARkB8QEZAYYEAAFzAVkBegGaAaABmgF6
+ AVkBMgIxAUsCAAEcA8MCoAKaBHoBWQFSAesCAAFmAf8B8AX/AfABbQH/ARkBkQQAAdUB/wKLAfQB/wH0
+ ARkB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAUsCAAEcBcMCoAKaBHoB6wIACWYB7AH/ARkBkQQA
+ AdUB9gX/AfQB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAW4CAAocBO0B8gQAAfAJ/wGRBAABtALV
+ Ac8GrQGLAa0EAAEcAXoBoATDAaABmgF6AVgBbgIAARwBGgLDAaABmgEcAfELAAQJAtwB1gTVBAABtAMJ
+ AdwD1gPVAa0EAAF0CsMBbgIAAfQFHAH0DAABCQIZAt0FCQHVBAABtQHVA7QCzgWtBAABGgKZAhoCwwIa
+ AZkBHAGZFQAFCQLcAdYB3AHWAdUUAAH/ARsBGgGZARwBdAFzAhwBmQEbAf8yACf/AksO/wHrAW0t/wGZ
+ AVIBSw3/AQcB7AFtGf8B9wtmCP8BdAFZATEBSwz/Au0CbQj/AfcLZgT/AfcB/wLyAfEC3QQJAWYI/wF0
+ AVkBSw3/Au0BbQHyCP8B7wH/AvIB8QHwAbwDCQG1AWYE/wH3A/8E7AH/ARkBCQFmCP8BdAFZATEBSwz/
+ Au0B6gFtCP8B7wH/AbwBBwG7AfQBuwK1ARkBtQFmBP8B9wT/A/QB/wEZAQkBZgj/AXQBWQExAUsM/wGS
+ Ae0B6wFtCP8BuwT/AvQDGQG1AWYE/wH3A/8E7AL/Ad0BZgj/AXQBWQFKDf8BkgHtAeoJ/wG7Af8DvAH/
+ A7sBGQG7AWYE/wG1CP8B9AHdAWYH/wGZAXQBWQFKARwK/wH0Ae8B7QGSAeoB9wH0B/8Buwb/AvQBGQEH
+ AWYE/wHvA/8E7AH/AfQB8QFmBv8BmQF0AXoBMgExAUoBcwj/AfQB7wHsAe8B6wFtAeoB7AHzBv8BuwH/
+ A7wB/wG8AQcBuwH0AQcBZgT/AbUJ/wHyAWYF/wGZAXQBegEyAVkCMQFKAXQH/wEHAe0BBwLsAesBbQHq
+ AZIG/wG7B/8C9AEZAWYE/wG7A/8E7AL/AfIBZgX/AZkBwwRZAjEBbgf/Ae8B8QGSAewCkgHrAW0B6wb/
+ A9YC1QK0Ba0E/wG7Cv8BZgX/ARwBwwF6AVIBHAFZAjEBbgf/Ae8B8gHvAewCkgHrAW0B6wb/AdYBCQTc
+ AdYE1QGtBP8D1gG1BLQBzwOtBf8BmQHDAXoBSwHzARwCMQFzB/8B7wHzAe8B6gHzAZIB7AFtAewG/wXW
+ AdUDtAOtBP8B1gIJAtwB1gXVAa0F/wGZAcMBmgFSAUsDUgF0B/8BBwHzAfAB7AHqA+wB9xb/A9YBtQS0
+ Ac8DrQb/AZkCwwGaAVkBUgF0CP8B9AEHAvMB8AGSAewBkgHzKf8BGgGZARwBdAGZC/8BvAHvAfcB7QHv
+ AfQF/wFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+BAAT/AYABHwL/AeABBwL/
+ AYABHwL/AcABAwEAAQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEA
+ AQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEBgAEDAcABAwHA
+ AQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEB4AEDAcABAwHAAQMBAAH/AeABAwHA
+ AQMBwAEDAQEB/wHgAQMBwAEDAcABAwL/AeABAwL/AcABAwb/gAAL
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.Designer.cs
new file mode 100644
index 0000000..5b81dfe
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.Designer.cs
@@ -0,0 +1,301 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class F_Main
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_Main));
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.treeView1 = new System.Windows.Forms.TreeView();
+ this.lstImage = new System.Windows.Forms.ImageList(this.components);
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.linkLabel1 = new System.Windows.Forms.LinkLabel();
+ this.rad_linq = new System.Windows.Forms.RadioButton();
+ this.rad_ado = new System.Windows.Forms.RadioButton();
+ this.rad_sql = new System.Windows.Forms.RadioButton();
+ this.rad_isEntity = new System.Windows.Forms.RadioButton();
+ this.label1 = new System.Windows.Forms.Label();
+ this.contextMenu1 = new System.Windows.Forms.ContextMenu();
+ this.menuItem1 = new System.Windows.Forms.MenuItem();
+ this.contextMenu2 = new System.Windows.Forms.ContextMenu();
+ this.menuItem2 = new System.Windows.Forms.MenuItem();
+ this.menuItem4 = new System.Windows.Forms.MenuItem();
+ this.menuItem5 = new System.Windows.Forms.MenuItem();
+ this.menuItem6 = new System.Windows.Forms.MenuItem();
+ this.menuItem7 = new System.Windows.Forms.MenuItem();
+ this.menuItem3 = new System.Windows.Forms.MenuItem();
+ this.groupBox1.SuspendLayout();
+ this.groupBox2.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.treeView1);
+ this.groupBox1.Dock = System.Windows.Forms.DockStyle.Left;
+ this.groupBox1.Location = new System.Drawing.Point(0, 0);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(230, 515);
+ this.groupBox1.TabIndex = 0;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Database";
+ //
+ // treeView1
+ //
+ this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.treeView1.ImageIndex = 4;
+ this.treeView1.ImageList = this.lstImage;
+ this.treeView1.Location = new System.Drawing.Point(3, 17);
+ this.treeView1.Name = "treeView1";
+ this.treeView1.SelectedImageIndex = 4;
+ this.treeView1.Size = new System.Drawing.Size(224, 495);
+ this.treeView1.TabIndex = 0;
+ this.treeView1.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeExpand);
+ this.treeView1.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
+ this.treeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView1_MouseDown);
+ //
+ // lstImage
+ //
+ this.lstImage.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("lstImage.ImageStream")));
+ this.lstImage.TransparentColor = System.Drawing.Color.Transparent;
+ this.lstImage.Images.SetKeyName(0, "table-icon.png");
+ this.lstImage.Images.SetKeyName(1, "field-icon.png");
+ this.lstImage.Images.SetKeyName(2, "primary_key-icon.png");
+ this.lstImage.Images.SetKeyName(3, "foreign_key-icon.png");
+ this.lstImage.Images.SetKeyName(4, "db.png");
+ this.lstImage.Images.SetKeyName(5, "00060.png");
+ this.lstImage.Images.SetKeyName(6, "views.png");
+ this.lstImage.Images.SetKeyName(7, "proc.png");
+ //
+ // panel1
+ //
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel1.Location = new System.Drawing.Point(3, 47);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(718, 465);
+ this.panel1.TabIndex = 1;
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.panel1);
+ this.groupBox2.Controls.Add(this.panel2);
+ this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.groupBox2.Location = new System.Drawing.Point(230, 0);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(724, 515);
+ this.groupBox2.TabIndex = 0;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Code";
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.linkLabel1);
+ this.panel2.Controls.Add(this.rad_linq);
+ this.panel2.Controls.Add(this.rad_ado);
+ this.panel2.Controls.Add(this.rad_sql);
+ this.panel2.Controls.Add(this.rad_isEntity);
+ this.panel2.Controls.Add(this.label1);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel2.Location = new System.Drawing.Point(3, 17);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(718, 30);
+ this.panel2.TabIndex = 0;
+ //
+ // linkLabel1
+ //
+ this.linkLabel1.AutoSize = true;
+ this.linkLabel1.Location = new System.Drawing.Point(575, 9);
+ this.linkLabel1.Name = "linkLabel1";
+ this.linkLabel1.Size = new System.Drawing.Size(77, 12);
+ this.linkLabel1.TabIndex = 9;
+ this.linkLabel1.TabStop = true;
+ this.linkLabel1.Text = "About author";
+ this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
+ //
+ // rad_linq
+ //
+ this.rad_linq.AutoSize = true;
+ this.rad_linq.Location = new System.Drawing.Point(235, 8);
+ this.rad_linq.Name = "rad_linq";
+ this.rad_linq.Size = new System.Drawing.Size(47, 16);
+ this.rad_linq.TabIndex = 7;
+ this.rad_linq.TabStop = true;
+ this.rad_linq.Text = "linq";
+ this.rad_linq.UseVisualStyleBackColor = true;
+ this.rad_linq.CheckedChanged += new System.EventHandler(this.rad_linq_CheckedChanged);
+ //
+ // rad_ado
+ //
+ this.rad_ado.AutoSize = true;
+ this.rad_ado.Location = new System.Drawing.Point(188, 9);
+ this.rad_ado.Name = "rad_ado";
+ this.rad_ado.Size = new System.Drawing.Size(41, 16);
+ this.rad_ado.TabIndex = 8;
+ this.rad_ado.TabStop = true;
+ this.rad_ado.Text = "ADO";
+ this.rad_ado.UseVisualStyleBackColor = true;
+ this.rad_ado.CheckedChanged += new System.EventHandler(this.rad_ado_CheckedChanged);
+ //
+ // rad_sql
+ //
+ this.rad_sql.AutoSize = true;
+ this.rad_sql.Location = new System.Drawing.Point(140, 8);
+ this.rad_sql.Name = "rad_sql";
+ this.rad_sql.Size = new System.Drawing.Size(41, 16);
+ this.rad_sql.TabIndex = 6;
+ this.rad_sql.TabStop = true;
+ this.rad_sql.Text = "sql";
+ this.rad_sql.UseVisualStyleBackColor = true;
+ this.rad_sql.CheckedChanged += new System.EventHandler(this.rad_sql_CheckedChanged);
+ //
+ // rad_isEntity
+ //
+ this.rad_isEntity.AutoSize = true;
+ this.rad_isEntity.Location = new System.Drawing.Point(76, 8);
+ this.rad_isEntity.Name = "rad_isEntity";
+ this.rad_isEntity.Size = new System.Drawing.Size(59, 16);
+ this.rad_isEntity.TabIndex = 4;
+ this.rad_isEntity.TabStop = true;
+ this.rad_isEntity.Text = "Entity";
+ this.rad_isEntity.UseVisualStyleBackColor = true;
+ this.rad_isEntity.CheckedChanged += new System.EventHandler(this.rad_isEntity_CheckedChanged);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(19, 10);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(47, 12);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "Choose:";
+ //
+ // contextMenu1
+ //
+ this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+ this.menuItem1});
+ //
+ // menuItem1
+ //
+ this.menuItem1.Index = 0;
+ this.menuItem1.Text = "CodeGenerator";
+ this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
+ //
+ // contextMenu2
+ //
+ this.contextMenu2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+ this.menuItem2,
+ this.menuItem3});
+ //
+ // menuItem2
+ //
+ this.menuItem2.Index = 0;
+ this.menuItem2.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
+ this.menuItem4,
+ this.menuItem5,
+ this.menuItem6,
+ this.menuItem7});
+ this.menuItem2.Text = "ADO";
+ //
+ // menuItem4
+ //
+ this.menuItem4.Index = 0;
+ this.menuItem4.Text = "Select-field";
+ this.menuItem4.Click += new System.EventHandler(this.menuItem4_Click);
+ //
+ // menuItem5
+ //
+ this.menuItem5.Index = 1;
+ this.menuItem5.Text = "Insert-field";
+ this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
+ //
+ // menuItem6
+ //
+ this.menuItem6.Index = 2;
+ this.menuItem6.Text = "Update-field";
+ this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);
+ //
+ // menuItem7
+ //
+ this.menuItem7.Index = 3;
+ this.menuItem7.Text = "Delete-field";
+ this.menuItem7.Click += new System.EventHandler(this.menuItem7_Click);
+ //
+ // menuItem3
+ //
+ this.menuItem3.Index = 1;
+ this.menuItem3.Text = "Linq";
+ //
+ // F_Main
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(954, 515);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Cursor = System.Windows.Forms.Cursors.Default;
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "F_Main";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "CsharpOSMeteorCodeGenerator";
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.F_Main_FormClosed);
+ this.Load += new System.EventHandler(this.F_Main_Load);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox2.ResumeLayout(false);
+ this.panel2.ResumeLayout(false);
+ this.panel2.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.ImageList lstImage;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.GroupBox groupBox2;
+ private System.Windows.Forms.Panel panel2;
+ private System.Windows.Forms.RadioButton rad_linq;
+ private System.Windows.Forms.RadioButton rad_ado;
+ private System.Windows.Forms.RadioButton rad_sql;
+ private System.Windows.Forms.RadioButton rad_isEntity;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.LinkLabel linkLabel1;
+ private System.Windows.Forms.ContextMenu contextMenu1;
+ private System.Windows.Forms.MenuItem menuItem1;
+ public System.Windows.Forms.TreeView treeView1;
+ private System.Windows.Forms.ContextMenu contextMenu2;
+ private System.Windows.Forms.MenuItem menuItem2;
+ private System.Windows.Forms.MenuItem menuItem3;
+ private System.Windows.Forms.MenuItem menuItem5;
+ private System.Windows.Forms.MenuItem menuItem4;
+ private System.Windows.Forms.MenuItem menuItem6;
+ private System.Windows.Forms.MenuItem menuItem7;
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.cs
new file mode 100644
index 0000000..15de832
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.cs
@@ -0,0 +1,866 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using CsharpOSMeteorCodeGenerator.Model;
+using ICSharpCode.TextEditor;
+using ICSharpCode.TextEditor.Document;
+using System.IO;
+using System.Data.SqlClient;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class F_Main : Form
+ {
+ TextEditorControl txtEditControl;
+ public F_Main()
+ {
+ InitializeComponent();
+ txtEditControl = new TextEditorControl();
+ txtEditControl.Dock = DockStyle.Fill;
+ this.panel1.Controls.Add(txtEditControl);
+ }
+
+ private void F_Main_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ System.Environment.Exit(0);
+ }
+
+ private void F_Main_Load(object sender, EventArgs e)
+ {
+ rad_isEntity.Checked = true;
+ //this.Controls.Clear();
+ Data.GetListTables glt = new Data.GetListTables();
+ List list_str= glt.GetListDBName(Model.EModel.connBuilder);
+ OSMyNode node;
+ OSMyNode snode;
+ foreach (string item in list_str)
+ {
+ node = new OSMyNode();
+ node.Text = item;
+ node.ToolTipText = item;
+ node.Value = item;
+ node.Tag = "fistPid";
+ snode = new OSMyNode();
+ snode.Text = "snode";
+ snode.ImageIndex = 4;
+ snode.SelectedImageIndex = 4;
+ node.Nodes.Add(snode);
+ treeView1.Nodes.Add(node);
+ }
+
+
+ }
+
+ private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
+ {
+ if (e.Node.Parent == null)
+ {
+
+ this.treeView1.Cursor = Cursors.AppStarting;
+ OSMyNode node = (OSMyNode)e.Node;
+ node.Nodes.Clear();
+ Data.GetListTables glt = new Data.GetListTables();
+
+ OSMyNode snode;
+ OSMyNode cnode;
+ List list_tab = glt.ListTables(Model.EModel.connBuilder, e.Node.Text);
+ List list_tab2 = glt.ListViews(Model.EModel.connBuilder, e.Node.Text);
+ List list_tab3 = glt.ListProc(Model.EModel.connBuilder, e.Node.Text);
+ foreach (Table table in list_tab)
+ {
+ snode = new OSMyNode();
+ snode.Text = table.Name;
+ snode.Value = table;
+ snode.ToolTipText = table.Name;
+ snode.ImageIndex = 5;
+ snode.SelectedImageIndex = 5;
+ node.Nodes.Add(snode);
+ //snode.Value = table;
+ //node.Checked = true;
+ //node.SelectedImageIndex = (int)DBImage.TABLE;
+ //node.ImageIndex = (int)DBImage.TABLE;
+ //tree.Nodes.Add(node);
+ cnode = new OSMyNode();
+ cnode.Text = "snode";
+ cnode.Tag = "snode";
+ snode.Nodes.Add(cnode);
+ }
+ foreach (Table table in list_tab2)
+ {
+ snode = new OSMyNode();
+ snode.Text = table.Name;
+ snode.Value = table;
+ snode.ToolTipText = table.Name;
+ snode.ImageIndex = 6;
+ snode.SelectedImageIndex = 6;
+ node.Nodes.Add(snode);
+ cnode = new OSMyNode();
+ cnode.Text = "snode";
+ cnode.Tag = "snode";
+ snode.Nodes.Add(cnode);
+ }
+ foreach (Table table in list_tab3)
+ {
+ snode = new OSMyNode();
+ snode.Text = table.Name;
+ snode.Value = table;
+ snode.ToolTipText = table.Name;
+ snode.ImageIndex = 7;
+ snode.SelectedImageIndex = 7;
+ node.Nodes.Add(snode);
+ cnode = new OSMyNode();
+ cnode.Text = "snode";
+ cnode.Tag = "snode";
+ snode.Nodes.Add(cnode);
+ }
+ this.treeView1.Cursor = Cursors.Default ;
+ }
+ //MessageBox.Show(e.Node.FirstNode.Text);
+
+ if ((e.Node.Parent != null) && (e.Node.FirstNode.Text == "snode"))
+ {
+ this.treeView1.Cursor = Cursors.AppStarting;
+ OSMyNode node = (OSMyNode)e.Node;
+ node.Nodes.Clear();
+ Data.GetListTables glt = new Data.GetListTables();
+ Data.ColumnData dcd = new Data.ColumnData();
+ Data.TableData tabdata = new Data.TableData();
+ List list_column = tabdata.ListTablesColumn(node.Text, Model.EModel.connBuilder);
+ OSMyNode Tnode;
+ foreach (Column column in list_column)
+ {
+ Tnode = new OSMyNode();
+ Tnode.Value = column;
+ //Tnode.Text = column.Name;
+ Tnode.Text = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ToolTipText = column.Name + " \n(" + ListarAtributos(column) + ")";
+ Tnode.ImageIndex=GetImageIndex(column);
+ Tnode.SelectedImageIndex = GetImageIndex(column);
+
+ //nodeSon.Checked = true;
+ //nodeSon.Text = column.Name + " (" + ListarAtributos(column) + ")";
+ //nodeSon.Value = column;
+ //nodeSon.SelectedImageIndex = GetImageIndex(column);
+ //nodeSon.ImageIndex = GetImageIndex(column);
+ //node.Nodes.Add(nodeSon);
+ node.Nodes.Add(Tnode);
+ }
+ this.treeView1.Cursor = Cursors.Default;
+ }
+ }
+
+
+ private int GetImageIndex(Column column)
+ {
+ if (column.PrimaryKey)
+ {
+ return (int)DBImage.PRIMARY_KEY;
+ }
+ else if (column.ForeignKey)
+ {
+ return (int)DBImage.FOREIGN_KEY;
+ }
+ else
+ {
+ return (int)DBImage.FIELD;
+ }
+ }
+ ///
+ /// Database's objects image
+ ///
+ public enum DBImage : int
+ {
+ TABLE = 0,
+ FIELD = 1,
+ PRIMARY_KEY = 2,
+ FOREIGN_KEY = 3
+ }
+ private string ListarAtributos(Column column)
+ {
+ string attributes = String.Empty;
+
+ if (column.PrimaryKey)
+ {
+ attributes += "PK, ";
+ }
+
+ if (column.ForeignKey)
+ {
+ attributes += "FK, ";
+ }
+
+ if (column.CharacterMaximumLength != null)
+ {
+ attributes += column.Type + "(" + column.CharacterMaximumLength + "), ";
+ }
+ else
+ {
+ attributes += column.Type + ", ";
+ }
+
+ attributes += (column.Nullable) ? "null" : "not null";
+
+ return attributes;
+ }
+ string Filepath_entity= @"..\..\config\tempentity.cs";
+ string Filepath_sql = @"..\..\config\tempsql.cs";
+ string Filepath_ado = @"..\..\config\tempado.cs";
+ string Filepath_linq = @"..\..\config\templinq.cs";
+ private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
+ {
+ //OSMyNode node = (OSMyNode)treeView1.SelectedNode;
+ OSMyNode node = (OSMyNode)e.Node;
+ if (node == null)
+ {
+ return;
+ }
+
+ if (node.Parent == null)
+ {
+ if (e.Button == MouseButtons.Right)
+ {
+ treeView1.ContextMenu = this.contextMenu1;
+ }
+ }
+ else if (node.ImageIndex==5)
+ {
+ if (e.Button == MouseButtons.Right)
+ {
+ treeView1.ContextMenu = this.contextMenu2;
+ }
+ }
+ else
+ {
+ treeView1.ContextMenu = null;
+
+ }
+
+ if (node.ImageIndex == 5 || node.ImageIndex==6)
+ {
+ string StrTableName = node.Text;
+ this.treeView1.Cursor = Cursors.AppStarting;
+ #region entity
+ //string StrNameSpace = this.txt_namespce.Text;
+ string StrTableAttribute = GetrTableAttribute(node);
+ string StrtableAttribute2 = GetrTableAttribute2(node);
+ string StrtableAttribute3 = GetrTableAttribute3(node);
+ string StrTablefieldJson = GetrTablefieldJson(node);
+ using (StreamWriter sw = File.CreateText(Filepath_entity))
+ {
+ sw.WriteLine(String.Format(Model.BaseTableENtityClass.strtable, StrTableName, StrTableAttribute, StrtableAttribute2, StrtableAttribute3, StrTablefieldJson));
+ sw.Close();
+ }
+ #endregion
+ #region sql
+
+ //string StrTablefield = GetrTablefield(node);
+ string StrTablefieldInsertsql = GetrTablefieldInsertSQL(node);
+ string StrTablefieldSelectSQL = GetrTablefieldSelectSQL(node);
+ string StrTablefieldUpdateSQL = GetrTablefieldUpdateSQL(node);
+ string StrTablefieldDeleteSQL = GetrTablefieldDeleteSQL(node);
+ //string StrTablefieldSqlParameterSQL = GetrTablefieldSqlParameterSQL(node);
+ using (StreamWriter sw = File.CreateText(Filepath_sql))
+ {
+ sw.WriteLine(String.Format(Model.BaseTableSQLClass.strtablesql, StrTablefieldSelectSQL, StrTablefieldInsertsql,
+ StrTablefieldUpdateSQL, StrTablefieldDeleteSQL
+ ));
+ sw.Close();
+ }
+ #endregion
+ #region ado
+ string StrTablefieldSqlParameterSQL = GetrTablefieldSqlParameterSQL(node);
+ using (StreamWriter sw = File.CreateText(Filepath_ado))
+ {
+ sw.WriteLine(String.Format(Model.BaseTableAdoClass.strtableado, StrTablefieldSqlParameterSQL
+ ));
+ sw.Close();
+ }
+ #endregion
+ #region linq
+ string linqadd_entity = GetrTableAttribute_linqadd_entity(node);
+ string linqadd = String.Format(Model.BaseTableLinqClass.strtablelinqadd, StrTableName, StrTableName, StrTableName,linqadd_entity,StrTableName);
+ string strtablelinqdelete = String.Format(Model.BaseTableLinqClass.strtablelinqdelete, StrTableName, StrTableName, StrTableName, StrTableName);
+ string linqupdate_entity = GetrTableAttribute_linqupdate_entity(node);
+ string strtablelinqupdate = String.Format(Model.BaseTableLinqClass.strtablelinqupdate, StrTableName, StrTableName, StrTableName, StrTableName, linqupdate_entity);
+ string strtablelinqselect = String.Format(Model.BaseTableLinqClass.strtablelinqselect, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, linqupdate_entity);
+ string strtablelinqselectToIEnumerable = String.Format(Model.BaseTableLinqClass.strtablelinqselectToIEnumerable, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName, StrTableName);
+ using (StreamWriter sw = File.CreateText(Filepath_linq))
+ {
+ sw.WriteLine(strtablelinqselect);
+ sw.WriteLine(strtablelinqselectToIEnumerable);
+ sw.WriteLine(linqadd);
+ sw.WriteLine(strtablelinqdelete);
+ sw.WriteLine(strtablelinqupdate);
+ sw.Close();
+ }
+
+ #endregion
+ this.treeView1.Cursor = Cursors.Default;
+ if (rad_isEntity.Checked)
+ {
+
+ txtEditControl.LoadFile(Filepath_entity);
+ }
+ if (rad_sql.Checked)
+ {
+
+ txtEditControl.LoadFile(Filepath_sql);
+ }
+ if (rad_ado.Checked)
+ {
+ txtEditControl.LoadFile(Filepath_ado);
+ }
+ if (rad_linq.Checked)
+ {
+ txtEditControl.LoadFile(Filepath_linq);
+ }
+ }
+ }
+ public string GetrTableAttribute(OSMyNode node) {
+ string rs = "\n";
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ rs += " public " + GetdbType(item.Type) + " " + item.Name + " { get; set ; }\n";
+ }
+ return rs;
+ }
+ public string GetrTableAttribute2(OSMyNode node)
+ {
+ string rs = "\n";
+ rs += " " + node.Text + " newojb = new " + node.Text + "();\n";
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ rs += " newojb." + item.Name + "="+"("+item.Type+");"+"\n";
+ }
+ return rs;
+ }
+ public string GetrTableAttribute3(OSMyNode node)
+ {
+ string rs = "\n";
+ rs += " " + node.Text + " newojb = new " + node.Text + "()\n";
+ rs += " {\n";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += " " + item.Name + "=" + "(" + item.Type + ")" + "\n";
+ }
+ else
+ {
+ rs += " " + item.Name + "=" + "(" + item.Type + ")," + "\n";
+ }
+ num++;
+
+ }
+ rs += " };";
+ return rs;
+ }
+ public string GetrTablefieldJson(OSMyNode node)
+ {
+ string rs = "{";
+ //Insert INTO table(field1,field2,...) values(value1,value2,...)
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += " \"" + item.Name + "\": " + "v_" + item.Name + "(" + item.Type + ")" + "";
+ }
+ else
+ {
+ rs += " \"" + item.Name + "\": " + "v_" + item.Name + "(" + item.Type + ")" + ",";
+ }
+ num++;
+
+
+ }
+ rs += "}";
+ return rs;
+
+ }
+ public string GetrTablefield(OSMyNode node)
+ {
+ string rs = "\n";
+
+ Table tab = (Table)node.Value;
+
+ foreach (Column item in tab.Columns)
+ {
+ rs += " " + item.Name + " ";
+ }
+ return rs;
+
+ }
+ public string GetdbType(string type)
+ {
+ string rs = "";
+ switch (type)
+ {
+ case "int": rs = "int"; break;
+ case "tinyint": rs = "int"; break;
+ case "smallint": rs = "int"; break;
+ case "bigint": rs = "int"; break;
+ case "datetime": rs = "DateTime"; break;
+ case "smalldatetime": rs = "DateTime"; break;
+ case "date": rs = "DateTime"; break;
+ case "float": rs = "int"; break;
+ case "decimal": rs = "decimal"; break;
+ case "numeric": rs = "decimal"; break;
+ case "money": rs = "decimal"; break;
+ case "real": rs = "decimal"; break;
+ case "smallmoney": rs = "decimal"; break;
+ case "bit": rs = "bool"; break;
+ default:
+ rs = "string";
+ break;
+ }
+ return rs;
+ }
+ public string GetrTablefieldSelectSQL(OSMyNode node)
+ {
+ string rs = "select ";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name;
+ }
+ else
+ {
+ rs += item.Name + ",";
+ }
+ num++;
+
+ }
+ rs += " from "+node.Text+" where 1=1";
+ return rs;
+
+ }
+ public string GetrTablefieldInsertSQL(OSMyNode node)
+ {
+ string rs = "insert into "+node.Text+"(";
+ //Insert INTO table(field1,field2,...) values(value1,value2,...)
+ Table tab = (Table)node.Value;
+ string strvalue = " values(";
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name;
+ strvalue += "v_" + item.Name + "(" + item.Type+ ")";
+ }
+ else
+ {
+ rs += item.Name + ",";
+ strvalue += "v_" + item.Name + "(" + GetdbType(item.Type) + ")" + ",";
+ }
+ num++;
+
+ }
+ rs += ")";
+ rs += strvalue+")";
+ return rs;
+
+ }
+ public string GetrTablefieldUpdateSQL(OSMyNode node)
+ {
+ string rs = "update " + node.Text +" set ";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ rs += item.Name + "=" + "(" + item.Type + ")";
+ }
+ else
+ {
+ rs += item.Name + "=" + "(" + item.Type + ")" + ",";
+ }
+ num++;
+
+ }
+ rs += "where 1=1";
+ return rs;
+
+ }
+ public string GetrTablefieldDeleteSQL(OSMyNode node)
+ {
+ string rs = "delete from " + node.Text + " where 1=1";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQL(OSMyNode node)
+ {
+ string rs = "\n using (SqlConnection conn = new SqlConnection(connectionString))"
+ + "\n {"
+ + "\n conn.Open();"
+ + "\n SqlCommand comm = new SqlCommand();"
+ + "\n comm.Connection = conn;";
+ Table tab = (Table)node.Value;
+ int number1= 1;
+ string strsql_update = "\" update " + node.Text + " set ";
+ string strql_select = "\" select ";
+ //select column1,column2,column3,id from Table_1 where 1=1
+ string strql_insert = "\"insert into " + node.Text + "(";
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == number1)
+ {
+ strql_insert += item.Name;
+ strsql_update += item.Name + "= @" + item.Name + "";
+ strql_select += item.Name;
+ }else{
+ strql_insert += item.Name + ",";
+ strsql_update += item.Name + "= @" + item.Name+",";
+ strql_select += item.Name + ",";
+ }
+ number1++;
+ }
+ strql_insert += ") values(";
+ int number2= 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == number2)
+ {
+ strql_insert += "@" + item.Name + "";
+
+ }else{
+ strql_insert += "@" + item.Name + ",";
+ }
+ number2++;
+ }
+ strql_insert += ")\";\n";
+ strsql_update += " where 1=1 \"";
+ strql_select += " from " + node.Text;
+ strql_select += " where 1=1 \"";
+ rs += "\n";
+ rs += " string strql_insert=" + strql_insert+"";
+ rs += " string strql_select=" + strql_select + ";";
+ rs += "\n";
+ rs += " string sql_update=" + strsql_update + ";";
+ rs += "\n comm.CommandText = \"\";";
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ if (tab.Columns.Count == num)
+ {
+ string Sqltype=Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ //string isnull = "false";
+ //rs += "\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype + ", " + item.CharacterMaximumLength +
+ // ",ParameterDirection.Input,"+isnull+" , 0, 0, \""+item.Name+"\""+
+ // ", DataRowVersion.Current,"+"\""+"v_"+item.Name+"\""
+ // +")";
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\n comm.Parameters.Add(new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " "+Sqltypelength.ToString()+") { Value = \"v_"+item.Name+"\" });";
+ }
+ else
+ {
+ string Sqltype = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2SqlTypers(item.Type);
+ //string isnull = "false";
+ //rs += "\n new SqlParameter(\"@" + item.Name + "\", " + Sqltype + ", " + item.CharacterMaximumLength +
+ // ",ParameterDirection.Input," + isnull + " , 0, 0, \"" + item.Name + "\"" +
+ // ", DataRowVersion.Current," + "\"" + "v_" + item.Name + "\""
+ // + "),";
+ string Sqltypelength = GetrTablefieldSqlParameterSQLLength(item.Type);
+ rs += "\n comm.Parameters.Add(new SqlParameter(\"@" + item.Name + "\", " + Sqltype +
+ " "+Sqltypelength.ToString()+") { Value = \"v_"+item.Name+"\" });";
+ }
+ num++;
+
+ }
+ rs += "\n ";
+ rs += @"comm.ExecuteNonQuery();";
+ rs += "\n //SqlDataAdapter adp = new SqlDataAdapter(comm);";
+ rs += "\n //DataSet result =adp.Fill(result);";
+ rs += "\n conn.Close();";
+ rs+="\n }";
+ return rs;
+
+ }
+ public string GetrTablefieldSqlParameterSQLLength(string dbsql) {
+
+ string rs = "";
+ if (dbsql == "varchar" || dbsql == "nvarchar" || dbsql == "char")
+ {
+ rs = ", -1 ";
+ }
+ return rs;
+ }
+
+ public string GetrTableAttribute_linqadd_entity(OSMyNode node)
+ {
+ string rs = "\n";
+ rs += " " + node.Text + " newojb = new " + node.Text + "()\n";
+ rs += " {\n";
+ Table tab = (Table)node.Value;
+ int num = 1;
+ foreach (Column item in tab.Columns)
+ {
+ string convetType=Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2CsharpTypeString(item.Type).ToString();
+ if (tab.Columns.Count == num)
+ {
+ rs += " " + item.Name + "=" + "(" + convetType + ")" + "obj." + item.Name + "\n";
+ }
+ else
+ {
+ rs += " " + item.Name + "=" + "(" + convetType + ")" + "obj." + item.Name + ",\n";
+ }
+ num++;
+ }
+ rs += " };";
+
+ return rs;
+ }
+
+ public string GetrTableAttribute_linqupdate_entity(OSMyNode node)
+ {
+ string rs = "\n";
+ Table tab = (Table)node.Value;
+ foreach (Column item in tab.Columns)
+ {
+ string convetType = Data.SqlDbTypeAndDbTypeConvert.SqlTypeString2CsharpTypeString(item.Type).ToString();
+ rs += " query." + item.Name + "=" + "(" + convetType + ")" + "obj." + item.Name + ";\n";
+ }
+ return rs;
+ }
+
+ private void rad_isEntity_CheckedChanged(object sender, EventArgs e)
+ {
+ if (rad_isEntity.Checked)
+ {
+ txtEditControl.LoadFile(Filepath_entity);
+ }
+ }
+
+ private void rad_sql_CheckedChanged(object sender, EventArgs e)
+ {
+ if (rad_sql.Checked) {
+ txtEditControl.LoadFile(Filepath_sql);
+ }
+ }
+
+ private void rad_ado_CheckedChanged(object sender, EventArgs e)
+ {
+ if (rad_ado.Checked)
+ {
+ txtEditControl.LoadFile(Filepath_ado);
+ }
+ }
+
+ private void rad_linq_CheckedChanged(object sender, EventArgs e)
+ {
+ if (rad_linq.Checked)
+ {
+ txtEditControl.LoadFile(Filepath_linq);
+ }
+ }
+ about a = null;
+ private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ if (a == null)
+ {
+ a = new about();
+ a.Show();
+ }
+ else {
+ a.Close();
+ a = new about();
+ a.Show();
+ }
+ }
+
+ private void treeView1_MouseDown(object sender, MouseEventArgs e)
+ {
+ this.treeView1.ContextMenu = null;
+ //OSMyNode node = (OSMyNode)treeView1.SelectedNode;
+ //if (node == null)
+ //{
+ // return;
+ //}
+
+ //if (node.Parent == null)
+ //{
+ // if (e.Button == MouseButtons.Right)
+ // {
+ // treeView1.ContextMenu = this.contextMenu1;
+ // }
+ //}
+ //else
+ //{
+ // treeView1.ContextMenu = null;
+
+ //}
+ }
+ F_CodeGenerator fcode = null;
+ private void menuItem1_Click(object sender, EventArgs e)
+ {
+ OSMyNode node = (OSMyNode)treeView1.SelectedNode;
+ if ( node.Tag.ToString()== "fistPid")
+ {
+ if(fcode==null)
+ {
+ fcode= new F_CodeGenerator();
+ fcode.Owner = this;
+ fcode.selectnode = this.selectnode;
+ //fcode.Show();
+ fcode.ShowDialog(this);
+ }else{
+ fcode.Close();
+ fcode= new F_CodeGenerator();
+ fcode.Owner = this;
+ fcode.selectnode = this.selectnode;
+ //fcode.Show();
+ fcode.ShowDialog(this);
+ }
+ }
+ }
+ public object selectnode{
+ get {
+ OSMyNode node = (OSMyNode)treeView1.SelectedNode;
+ if (node.Parent != null)
+ {
+ //pubs
+ string rs= EModel.connBuilder.ConnectionString;
+ rs=rs.Remove(30);
+ rs += node.Parent.Text + ";Integrated Security=True;Persist Security Info=True";
+ EModel.connBuilder.ConnectionString = rs;
+ }
+ return node; }
+ }
+ F_ADO_CodeGenerator fadocode = null;
+ private void menuItem4_Click(object sender, EventArgs e)
+ {
+ string type = "Select";
+ if (fadocode == null)
+ {
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)selectnode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ else {
+ fadocode.Close();
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ }
+
+ private void menuItem5_Click(object sender, EventArgs e)
+ {
+ string type = "Insert";
+ if (fadocode == null)
+ {
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ else
+ {
+ fadocode.Close();
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ }
+
+ private void menuItem6_Click(object sender, EventArgs e)
+ {
+ string type = "Update";
+ if (fadocode == null)
+ {
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ else
+ {
+ fadocode.Close();
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ }
+
+ private void menuItem7_Click(object sender, EventArgs e)
+ {
+ string type = "Delete";
+ if (fadocode == null)
+ {
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ else
+ {
+ fadocode.Close();
+ fadocode = new F_ADO_CodeGenerator();
+ fadocode.Owner = this;
+ fadocode.selectnode = this.selectnode;
+ fadocode.Pidnode_dbname = ((OSMyNode)treeView1.SelectedNode).Parent.Text.Trim().ToString();
+ fadocode.SQLType = type;
+ fadocode.ShowDialog(this);
+ }
+ }
+
+ //using (SqlConnection conn = new SqlConnection(EModel.connBuilder.ConnectionString))
+ //{
+ // conn.Open();
+ // SqlCommand comm = new SqlCommand();
+ // comm.Connection = conn;
+ // string strql_insert = "insert into [test].[dbo].[Table_1] (column1,column2,column3,id) values(@column1,@column2,@column3,@id)";
+ // comm.CommandText = strql_insert;
+ // //comm.Parameters.Add(new SqlParameter("@column1", SqlDbType.VarChar , -1 ) { Value = "v_column1" });
+ // //comm.Parameters.Add(new SqlParameter("@column2", SqlDbType.Int ) { Value = 1 });
+ // //comm.Parameters.Add(new SqlParameter("@column3", SqlDbType.DateTime) { Value = "2013-11-22 15:39:24.383" });
+ // //comm.Parameters.Add(new SqlParameter("@id", SqlDbType.UniqueIdentifier) { Value =System.Guid.NewGuid() });
+ // SqlParameter[] pm = {
+ // new SqlParameter("@column1", SqlDbType.VarChar , -1 ) { Value = "v_column1" },
+ // new SqlParameter("@column2", SqlDbType.Int ) { Value = 1 },
+ // new SqlParameter("@column3", SqlDbType.DateTime) { Value = "2013-11-22 15:39:24.383" },
+ // new SqlParameter("@id", SqlDbType.UniqueIdentifier) { Value =System.Guid.NewGuid() }
+ // };
+ // comm.Parameters.AddRange(pm);
+ // comm.ExecuteNonQuery();
+ // //SqlDataAdapter adp = new SqlDataAdapter(comm);
+ // //DataSet result =adp.Fill(result);
+ // conn.Close();
+ //}
+
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.resx
new file mode 100644
index 0000000..38b1c5b
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_Main.resx
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACq
+ DgAAAk1TRnQBSQFMAgEBCAEAAYwBAAGMAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
+ AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
+ AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+ AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
+ AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
+ AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
+ ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
+ AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
+ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
+ AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
+ AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
+ AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
+ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
+ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
+ AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
+ ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
+ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
+ AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
+ AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
+ AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
+ ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
+ Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
+ AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
+ AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
+ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
+ AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
+ AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
+ AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8AJgAJZgHs
+ GAABGwGZARwBcwNLAXMBHAHxFAABZgf/AfABbRcAAZkBcwF0AXkBmQGaAXoBUgExAVEBSwGZAgAB7AHr
+ AW0B6gETARUBEQEPBw4CAAFmAf8BbAHxArwB8wFDAbwBZgH3Ae0BrgQAA60BiwWGAmYBhgQAAXMBWAF6
+ AZoBoAGaAXoBWQEyAjEBSgIAAewBmgF6AVgFUgFRAUsBKgJLAQ8CAAFmAf8BkQHsAv8BDQH/AbsBbAH0
+ ARkBkQQAAa0C9ALzARkB8QIZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFKAgAB7AGgApoEegFZ
+ AVMCUgExAUsBEQIAAWYB/wHxAf8C8AH/AfMBBwFmAhkBkQQAAa0B/weLAgkBhgQAAXMBWQF6AZoBoAGa
+ AXoBWQEyAjEBSgIAAewBGgGgApoDegJZAVMCUgEqAUMCAAFmAf8BvAP/AfQB/wG8AWwB/wEZAZEEAAGt
+ Af8C9ALzARkB8wEZAd0BCQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgAB7QHDAqACmgN6AlkBUwFS
+ ATEBFAIAAWYB/wHxAf8B8QHdAf8B8wEHAWYB8wEZAZEEAAGtAf8CiwH0AosCGQLdAYYEAAFzAVkBegGa
+ AaABmgF6AVkBMgIxAUsCAAHtAcMCoAKaBHoCWQFSATEBEgIAAWYB/wGRAe0C/wENAf8BvAFsAf8B8wGR
+ BAABrQL/AvQC8wIZAd0BGQGGBAABcwFZAXoBmgGgAZoBegFZATICMQFLAgABHAPDAaACmgR6AVkBUgEx
+ AeoCAAFmAf8BbQH/AvEB/wENAfIBZgL0AZEEAAHUBP8B9ALzARkB8QEZAYYEAAFzAVkBegGaAaABmgF6
+ AVkBMgIxAUsCAAEcA8MCoAKaBHoBWQFSAesCAAFmAf8B8AX/AfABbQH/ARkBkQQAAdUB/wKLAfQB/wH0
+ ARkB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAUsCAAEcBcMCoAKaBHoB6wIACWYB7AH/ARkBkQQA
+ AdUB9gX/AfQB8wIZAYsEAAF0AVkBegGaAaABmgF6AVkBMgIxAW4CAAocBO0B8gQAAfAJ/wGRBAABtALV
+ Ac8GrQGLAa0EAAEcAXoBoATDAaABmgF6AVgBbgIAARwBGgLDAaABmgEcAfELAAQJAtwB1gTVBAABtAMJ
+ AdwD1gPVAa0EAAF0CsMBbgIAAfQFHAH0DAABCQIZAt0FCQHVBAABtQHVA7QCzgWtBAABGgKZAhoCwwIa
+ AZkBHAGZFQAFCQLcAdYB3AHWAdUUAAH/ARsBGgGZARwBdAFzAhwBmQEbAf8yACf/AksO/wHrAW0t/wGZ
+ AVIBSw3/AQcB7AFtGf8B9wtmCP8BdAFZATEBSwz/Au0CbQj/AfcLZgT/AfcB/wLyAfEC3QQJAWYI/wF0
+ AVkBSw3/Au0BbQHyCP8B7wH/AvIB8QHwAbwDCQG1AWYE/wH3A/8E7AH/ARkBCQFmCP8BdAFZATEBSwz/
+ Au0B6gFtCP8B7wH/AbwBBwG7AfQBuwK1ARkBtQFmBP8B9wT/A/QB/wEZAQkBZgj/AXQBWQExAUsM/wGS
+ Ae0B6wFtCP8BuwT/AvQDGQG1AWYE/wH3A/8E7AL/Ad0BZgj/AXQBWQFKDf8BkgHtAeoJ/wG7Af8DvAH/
+ A7sBGQG7AWYE/wG1CP8B9AHdAWYH/wGZAXQBWQFKARwK/wH0Ae8B7QGSAeoB9wH0B/8Buwb/AvQBGQEH
+ AWYE/wHvA/8E7AH/AfQB8QFmBv8BmQF0AXoBMgExAUoBcwj/AfQB7wHsAe8B6wFtAeoB7AHzBv8BuwH/
+ A7wB/wG8AQcBuwH0AQcBZgT/AbUJ/wHyAWYF/wGZAXQBegEyAVkCMQFKAXQH/wEHAe0BBwLsAesBbQHq
+ AZIG/wG7B/8C9AEZAWYE/wG7A/8E7AL/AfIBZgX/AZkBwwRZAjEBbgf/Ae8B8QGSAewCkgHrAW0B6wb/
+ A9YC1QK0Ba0E/wG7Cv8BZgX/ARwBwwF6AVIBHAFZAjEBbgf/Ae8B8gHvAewCkgHrAW0B6wb/AdYBCQTc
+ AdYE1QGtBP8D1gG1BLQBzwOtBf8BmQHDAXoBSwHzARwCMQFzB/8B7wHzAe8B6gHzAZIB7AFtAewG/wXW
+ AdUDtAOtBP8B1gIJAtwB1gXVAa0F/wGZAcMBmgFSAUsDUgF0B/8BBwHzAfAB7AHqA+wB9xb/A9YBtQS0
+ Ac8DrQb/AZkCwwGaAVkBUgF0CP8B9AEHAvMB8AGSAewBkgHzKf8BGgGZARwBdAGZC/8BvAHvAfcB7QHv
+ AfQF/wFCAU0BPgcAAT4DAAEoAwABQAMAATADAAEBAQABAQUAAYABARYAA/+BAAT/AYABHwL/AeABBwL/
+ AYABHwL/AcABAwEAAQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEA
+ AQEBgAEDAcABAwHAAQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEBgAEDAcABAwHA
+ AQMBAAEBAYABAwHAAQMBwAEDAQABAQGAAQMBwAEDAcABAwEAAQEB4AEDAcABAwHAAQMBAAH/AeABAwHA
+ AQMBwAEDAQEB/wHgAQMBwAEDAcABAwL/AeABAwL/AcABAwb/gAAL
+
+
+
+ 119, 17
+
+
+ 256, 17
+
+
+ 89
+
+
+
+
+ AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAC0Pj/A9P5/wLU9/8B2fr/BNr7/xPQ7v8kyOP/K8fi/xzC3f8Yxt7/Hr7W/wPk+v8B4fn/AuL6/wLi
+ /P8E5Pv/HqS+/xXh9f8S3vL/IsHe/zCUt/80j7T/LoSl/x6/3P8Y0uz/JrPY/xzQ7P8hxub/Hb/b/zR5
+ qP8Zu+L/Bdv5/wHQ9v8D0/n/A9b4/wDa+/8C2vr/Hcvo/ybG4P8mzOT/JcHa/x3a8f8cprz/AuT5/wLj
+ +f8D4/r/A+P7/wPj+v8dlKz/KNzz/zKfvP83i6//M5e2/yK20/8X2vT/LbbU/yzA3v8V2Pb/Ctn4/yDC
+ 5f8V1vP/JajJ/yuOvP8byuv/BNP5/wTU+f8E1vn/ANr7/wPb+f8Q1+7/I8fi/yjE3f8uvtn/EOL2/yKZ
+ rv8G4/n/A+X6/wPl+P8N4/b/IsTW/xxOYf8WTFz/FTtR/yVSaP8tyN3/HdLo/yTA3P8Z3Pb/JcTg/x7G
+ 4/8I3Pr/DNv4/yK/4f8W2/L/Jomr/yqbw/8D1fn/A9b6/wPY+v8A2fr/ANr7/wzY8/8jyOH/IsDa/zSz
+ 0P8L4fn/KZSs/wXj+P8J5fj/G9fr/yZ4i/8ZVmv/HrrQ/xTe8/8V4vX/HLbJ/yFuhP8lrsP/CuH4/wrf
+ +P8hyeP/Jcfj/xnO6v8a0vH/J7LW/ya92/8qwdz/LZGw/wHY+f8B2vn/Ad35/wDb/P8A2vv/C932/yTA
+ 2/8lyOD/KrnT/wni+v8sjqj/C+H3/yLL4P8xfJP/Ho2g/xPi9P8F5/n/BOL6/wTj+v8E4/v/FeD0/x94
+ jP8d0OL/MKTG/xfe9f8ow9v/HtHp/yHL5P8lxuL/NbXQ/yuiv/8ls8//A9f5/wPa+v8A2/j/ANv5/wLc
+ +v8L3fb/J8rf/ybH3v8ts8z/COP6/ymFm/8Y1Oz/LZKu/yagtP8J5ff/AeT7/wPn+f8C5vv/Beb6/wTl
+ +/8E4/r/G7HG/zqZsv82ssv/Isbe/ym71v8ext3/IsXe/yyJpv8wcZf/LH+h/yOuz/8B2fv/ANr6/wDc
+ +P8A3Pr/A935/xLW7f8lxtz/KMnd/y6nvv8G5Pr/Ioui/yHM4P8nvNb/C+j5/wTo9/8C5vn/CuX3/w7j
+ 9/8J5vr/C+f5/wnn+P8brb3/KsLX/zykvf8sv9X/KMTe/yW10/8upsb/MJG2/y5skv81r9T/JZm//wDa
+ +/8A2vv/ANv7/wHd+f8F4Pn/Ftnw/yfI3v8lzN7/MZqz/wfm+/8imK7/H8/i/wXl+v8B6vr/A+v7/wPp
+ +f8ixdX/G1pu/xp4iP8kaH3/KZCi/y2kuf8qxNj/L6C5/yWwzv8vnMT/LLDR/y6tz/8xmr//LoGf/yeG
+ pf8mgJ3/ANr7/wDZ+v8A2/z/Adz5/wLf+P8ezeb/Kb7Y/yrJ3/8skqv/BuX6/yKds/8Z1uf/Auf8/wHo
+ +/8B6Pr/Cun3/yOTpP8nna7/PqvD/zasyf8vscr/NX2X/zNui/81j7P/MJvC/y+fxP8ul7j/Kpe1/xm0
+ zv8R4Pb/H8jl/y91o/8A2vv/ANv7/wHb/P8B3fn/BN/5/xrT6/8rv9n/MrvV/yaNpv8H5fr/J5Wr/xXZ
+ 6/8B5vv/AOf6/wbl+f8gu87/LGN0/zN5kf8siKD/Npy8/zC0zv8pwNj/L52//y+bw/8mhKv/JZa2/xbR
+ 5f8O4vf/CuP5/w3j+v8T3vb/KYi2/wDY+f8A2fr/ANr7/wHd+f8G3vb/Kb3Y/y261f80rcX/GKG7/wfj
+ +f8rg5r/DOL4/wjl+v8Q5Pj/Iaa5/zF9kP8fo7b/J5Sw/zSbuP8hv9f/DOH2/w/j9/8krcj/KI2w/xjL
+ 4f8L5Pj/DeX2/xfI3/8ZpsP/ILrV/wnj+P8smsH/ANn6/wDa+v8A2vv/Adz4/xDa8f8tsMz/LrbO/y2I
+ nv8U2fD/Hczg/yF8lv8L4/v/GdLk/xlqff8zkKf/N5Cq/zCds/8U4vT/D+H0/wnj9f8fvND/HpGt/xnD
+ 2v8L4vf/CeL5/xrO5f8gkbT/Ea7J/xHf8/8Z0ur/BuT5/yegwP8A2vv/ANv6/wDc+f8F3fr/Hsji/zCx
+ zv81qsX/I5Oo/w7k9/8db4T/ILXO/wTk+v8frsT/KpGl/zKetv8k2On/OpSt/y5/mP8Z1+v/CuT5/yWb
+ sf8O4vX/DuH6/xnH3/8gkrP/GrXS/w/e9v8C5fr/A+b7/xrP6/8G5vv/KKrI/wDa+P8B3fr/Ad77/wbd
+ 9/8ru9b/OarG/y6Rqf8Z3fD/IZCi/ydZcf8W2vP/BeD7/yCFm/8unbr/Hd/v/y6twv8wz+L/K6zC/yec
+ tP8O4fj/J8Td/w3i9f8gnb3/F7HT/w/c9/8I4fv/BeX7/wLl+/8D5/v/G9Ds/wXk+/8YsM7/Adr7/wDa
+ +/8A2/z/A936/yDA2/8xkqv/H9nw/yOYsP8ek6z/IbHI/xy0x/8Y2e3/IoKV/yCyx/8l2ef/MKO3/yXC
+ 2f8lvtH/J4ue/yGzzf8lxd//EN73/xu92/8F4vv/AOb7/wHn+v8B5fn/Aub7/wHm+v8Y0+v/CuP7/xXG
+ 4f8A2fr/ANr7/wDa+/8C2/r/CN31/xTb7/8fhpr/I7DE/wnf+P8Q3/f/KIae/xyGnf8Zvtb/D+Dz/zSQ
+ qv8yvtP/LKi//zSLov8kxNn/J5my/zKtyP8S4vj/HsDb/wTn+/8B6fv/Aej6/wLn+v8B5vv/Auj6/xLV
+ 6/8Q4Pb/Fd71/wDa+/8A2vv/ANr7/wHb+v8G2/n/GMTd/x7G3f8F4fj/AeT6/wPj+f8fqrz/I2N2/wri
+ 9/8F4/r/Gtfu/yORpv81ka//L3mV/xLg9f8Z3fD/OJav/xba7/8gwNn/Bun5/wLq+v8B6fn/Aun5/wLo
+ +/8B6Pj/D+P1/xPV6/8N4vf/ANr7/wDa+/8A2vv/ANz5/wHc+v8C4Pj/A+H3/wLg9/8A4/r/AuX6/xLj
+ 9v8sqsT/E+H4/wLm+f8E5fr/E97w/ySzzf87epn/H9Lm/wrm+P8oqL3/Hs/j/yLI3v8J6fj/Auv6/wHq
+ +P8C6/n/Auv7/wHq+v8G6Pj/G9Hq/wXl+v8A2vv/ANn6/wHa+/8B2/n/At/8/wTf+/8C4fj/AuL5/wHj
+ +v8B5Pn/CuP3/ytnfv8io7j/BeT6/wbn+/8T4PH/KMPX/zFwif8yt83/KMnc/yOitf8n0OL/G87i/wzp
+ 9/8E7vr/Auz4/wPu+/8B7Pr/Aer6/wLr+v8e0en/A+X6/wDZ+v8B2vv/ANn6/wDZ+v8B3vr/AN/7/wHh
+ +v8C5Pr/AuL7/wLl+v8U3vP/JGqC/y6Yrf8e2On/Duj3/wvn+P8a2On/KMbZ/y2JoP85qLr/LX6R/ybT
+ 4v8X2+3/Ednp/wPt+f8B7Pj/Ae35/wDr+f8B6vr/Aun5/xnU6v8J5fr/ANn6/wDY+v8A2Pr/ANn5/wDa
+ +v8C3Pv/At74/wLg9/8C4vv/A+b7/xnb8P8itc7/JKG0/0OTrP8wi5//HcbU/xDi8f8l0eL/K8XU/yuc
+ sP8gYXf/LcvZ/xbp9P8Wytz/BO76/wLt+f8B7Pj/AOv5/wHp+v8F6Pj/Etzv/xDd8P8B2vv/ANj6/wDX
+ +v8A2fr/Atr6/wTb+P8D3Pj/BOH2/wTj+/8C5vr/G7XI/x/S5/8fprv/SIWd/zN5j/8nZnn/Jdvr/zfA
+ 1f8xw9X/Oae5/yuFmP8uh5v/GeLt/yDD1/8H7vr/Bu75/wTt+P8E7Pn/Bun6/wvn+P8Z3PD/JLnS/wHa
+ +/8B2fv/Adn8/wDc+f8Pz+//J8bn/w3b9f8ixuD/Gdfw/wLl+f8ZoLP/GN7w/xrU5/8zcIb/J42j/xzg
+ 8v8kfIz/J3iL/yx5jf8si5//KZ+w/zuru/8c0Nv/Ir3P/xni7/8T2ur/ENDi/xbH2/8cvdb/Gb/Y/xrG
+ 3v8W1ej/ANn6/wLZ+f8E2fn/A9r5/wba+f8K2/j/Bd35/w3e9/8H4vn/AeX6/xnH3P8Zyt7/BeX5/xvY
+ 6f8N4/b/Bef5/wvo9/8K7Pn/D+vz/wvs9/8J7fj/LbTB/yXC0P8U2OX/FMXZ/xHV5/8R3ez/EOj1/w3q
+ +P8J6/j/B+r3/wbo9/8A2fr/Adn6/xPY9v8N0vD/Cdr4/wrc+P8F3vn/A+H6/wPk+/8C5vv/GNvy/xi/
+ 1P8C5vn/Auf5/wPo+P8D6fn/Aer3/wHs+P8B7vj/A+35/wjt+f8isL7/KKO4/xrf6/8W4O7/GNfm/xTO
+ 3P8Vw9b/Fr/V/xy91f8hts//H7DK/wDa+/8Q1vb/No+v/x7H5f8vtdT/MKjG/xjV7f8ayuD/CeL3/wHk
+ +/8Z4fX/HrPJ/wXm+f8B5vr/AOj3/wHq9/8B7fj/AOz4/wHt+f8B7fn/Cu76/yWovP8Y2ej/FKzD/xav
+ x/8TtMr/FM7f/xTf8P8P5vf/DOf3/wro+P8J6fn/Adv8/xfO8P88kLL/Lp/A/zGTsv8ysc7/KrXN/zy7
+ 0f8N5Pf/AuT6/w/j8/8qrMD/B+f5/wHp+/8A6Pn/Aer4/wHr+P8B7fn/Ae35/wPs+v8Y4O3/G7nL/wPt
+ +f8C7fj/A+v4/wLr+P8C6/j/Aur5/wLr+v8D6/r/Aej5/wLo+P8B2fr/Ctf4/yS62/8V0O7/Icrl/xjS
+ 6f8a0ur/JL3V/w3j+v8C5fv/Buf3/yWxwv8U5vb/Aer7/wLr+/8D6/r/Aev5/wLt+v8B7fj/Bur4/xuy
+ wf8Xytr/Auz4/wLs+f8C7Pn/AOv4/wHr+P8B6ff/Aer5/wHq9/8B6fj/Aef6/wLa+v8J2vj/Cdv4/wje
+ +f8H3/j/BOP6/wPj+f8K5Pn/Beb5/wHl+/8F5/n/HNDg/x23zP8D6vr/Aez3/wLr+f8B6/r/Aev6/wPs
+ +P8G6vj/HX+T/xPl8P8C6/j/Aez4/wLr+f8D7Pr/Auv5/wHq+P8C6/r/Auv5/wHp+v8C5/z/Fdb1/xvJ
+ 5/8mwd//Jcni/xzR6/8Y2vP/DOP6/xXc8P8J5vb/Aub7/wLn+v8I5vf/KKe8/xDk8v8C6vn/Aur7/wDq
+ +v8D7Pv/B+r4/xzL2f8duMj/A+r4/wHr+P8B6/j/Aer4/wDo9v8B6vj/Aen4/wLr+v8B6vj/AOf4/wLm
+ +/8budv/H77e/yfB4f84i6//JrrV/yaz0P8mzub/NbPP/xna7f8C5vv/Auf6/wPm+f8W3O3/Jpir/xPo
+ 9v8G6vj/C+r4/xPk8/8fsMP/JHyV/xPj8v8C6vr/Aev4/wHr+f8B6vn/Aen6/wTq/P8C5/v/Aej6/wHo
+ +v8A5Pn/AeP6/wTZ+v8O1fb/E9P1/yLH5v8S2fX/GMzq/xfP6P81oLr/Ftvv/wHk+v8B5vn/Auf6/wTn
+ +f8b1eX/KY6m/yOgt/8ghJz/In6U/xy0xf8T6fX/Buv4/wLr+/8A7Pn/AOv4/wLr+/8B6vv/Aef7/wHl
+ +/8B5/n/AOb5/wHm+f8C5fj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.Designer.cs
new file mode 100644
index 0000000..0425c30
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.Designer.cs
@@ -0,0 +1,253 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class F_login
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows 窗体设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_login));
+ this.label1 = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.comb_serverName = new System.Windows.Forms.ComboBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.combx_servertype = new System.Windows.Forms.ComboBox();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.comb_Authentication = new System.Windows.Forms.ComboBox();
+ this.comb_UserName = new System.Windows.Forms.ComboBox();
+ this.txt_PassWord = new System.Windows.Forms.TextBox();
+ this.btn_Connection = new System.Windows.Forms.Button();
+ this.btn_Cancel = new System.Windows.Forms.Button();
+ this.check_Remember = new System.Windows.Forms.CheckBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(15, 133);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(65, 12);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "ServeName:";
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
+ this.pictureBox1.Location = new System.Drawing.Point(1, -3);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(533, 87);
+ this.pictureBox1.TabIndex = 2;
+ this.pictureBox1.TabStop = false;
+ //
+ // comb_serverName
+ //
+ this.comb_serverName.FormattingEnabled = true;
+ this.comb_serverName.Items.AddRange(new object[] {
+ ".",
+ "(local)"});
+ this.comb_serverName.Location = new System.Drawing.Point(191, 133);
+ this.comb_serverName.Name = "comb_serverName";
+ this.comb_serverName.Size = new System.Drawing.Size(298, 20);
+ this.comb_serverName.TabIndex = 3;
+ this.comb_serverName.Text = ".";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(15, 105);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(65, 12);
+ this.label2.TabIndex = 0;
+ this.label2.Text = "ServeType:";
+ //
+ // combx_servertype
+ //
+ this.combx_servertype.Enabled = false;
+ this.combx_servertype.FormattingEnabled = true;
+ this.combx_servertype.Items.AddRange(new object[] {
+ "database engine"});
+ this.combx_servertype.Location = new System.Drawing.Point(191, 105);
+ this.combx_servertype.Name = "combx_servertype";
+ this.combx_servertype.Size = new System.Drawing.Size(298, 20);
+ this.combx_servertype.TabIndex = 4;
+ this.combx_servertype.Text = "database engine";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(15, 161);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(95, 12);
+ this.label3.TabIndex = 0;
+ this.label3.Text = "Authentication:";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(30, 197);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(59, 12);
+ this.label4.TabIndex = 0;
+ this.label4.Text = "UserName:";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(30, 222);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(59, 12);
+ this.label5.TabIndex = 0;
+ this.label5.Text = "Password:";
+ //
+ // comb_Authentication
+ //
+ this.comb_Authentication.FormattingEnabled = true;
+ this.comb_Authentication.Items.AddRange(new object[] {
+ "Windows Authentication",
+ "Sql Server Authentication"});
+ this.comb_Authentication.Location = new System.Drawing.Point(191, 161);
+ this.comb_Authentication.Name = "comb_Authentication";
+ this.comb_Authentication.Size = new System.Drawing.Size(298, 20);
+ this.comb_Authentication.TabIndex = 3;
+ this.comb_Authentication.SelectedIndexChanged += new System.EventHandler(this.comb_Authentication_SelectedIndexChanged);
+ //
+ // comb_UserName
+ //
+ this.comb_UserName.FormattingEnabled = true;
+ this.comb_UserName.Items.AddRange(new object[] {
+ "sa"});
+ this.comb_UserName.Location = new System.Drawing.Point(206, 189);
+ this.comb_UserName.Name = "comb_UserName";
+ this.comb_UserName.Size = new System.Drawing.Size(283, 20);
+ this.comb_UserName.TabIndex = 3;
+ this.comb_UserName.Text = "sa";
+ //
+ // txt_PassWord
+ //
+ this.txt_PassWord.Location = new System.Drawing.Point(206, 219);
+ this.txt_PassWord.Name = "txt_PassWord";
+ this.txt_PassWord.Size = new System.Drawing.Size(283, 21);
+ this.txt_PassWord.TabIndex = 5;
+ //
+ // btn_Connection
+ //
+ this.btn_Connection.Location = new System.Drawing.Point(204, 293);
+ this.btn_Connection.Name = "btn_Connection";
+ this.btn_Connection.Size = new System.Drawing.Size(75, 23);
+ this.btn_Connection.TabIndex = 6;
+ this.btn_Connection.Text = "Connection";
+ this.btn_Connection.UseVisualStyleBackColor = true;
+ this.btn_Connection.Click += new System.EventHandler(this.btn_Connection_Click);
+ //
+ // btn_Cancel
+ //
+ this.btn_Cancel.Location = new System.Drawing.Point(311, 293);
+ this.btn_Cancel.Name = "btn_Cancel";
+ this.btn_Cancel.Size = new System.Drawing.Size(75, 23);
+ this.btn_Cancel.TabIndex = 6;
+ this.btn_Cancel.Text = "Cancel";
+ this.btn_Cancel.UseVisualStyleBackColor = true;
+ this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
+ //
+ // check_Remember
+ //
+ this.check_Remember.AutoSize = true;
+ this.check_Remember.Location = new System.Drawing.Point(206, 254);
+ this.check_Remember.Name = "check_Remember";
+ this.check_Remember.Size = new System.Drawing.Size(150, 16);
+ this.check_Remember.TabIndex = 7;
+ this.check_Remember.Text = "Remember the password";
+ this.check_Remember.UseVisualStyleBackColor = true;
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image")));
+ this.pictureBox2.Location = new System.Drawing.Point(14, 280);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(489, 4);
+ this.pictureBox2.TabIndex = 8;
+ this.pictureBox2.TabStop = false;
+ //
+ // F_login
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.ClientSize = new System.Drawing.Size(525, 327);
+ this.Controls.Add(this.pictureBox2);
+ this.Controls.Add(this.check_Remember);
+ this.Controls.Add(this.btn_Cancel);
+ this.Controls.Add(this.btn_Connection);
+ this.Controls.Add(this.txt_PassWord);
+ this.Controls.Add(this.combx_servertype);
+ this.Controls.Add(this.comb_UserName);
+ this.Controls.Add(this.comb_Authentication);
+ this.Controls.Add(this.comb_serverName);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.label4);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.ImeMode = System.Windows.Forms.ImeMode.On;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "F_login";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Connect to the database engine";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.ComboBox comb_serverName;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.ComboBox combx_servertype;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.ComboBox comb_Authentication;
+ private System.Windows.Forms.ComboBox comb_UserName;
+ private System.Windows.Forms.TextBox txt_PassWord;
+ private System.Windows.Forms.Button btn_Connection;
+ private System.Windows.Forms.Button btn_Cancel;
+ private System.Windows.Forms.CheckBox check_Remember;
+ private System.Windows.Forms.PictureBox pictureBox2;
+
+ }
+}
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.cs
new file mode 100644
index 0000000..07a6499
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.cs
@@ -0,0 +1,118 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using ICSharpCode.TextEditor;
+using ICSharpCode.TextEditor.Document;
+using System.Data.SqlClient;
+
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class F_login : Form
+ {
+ private SqlConnectionStringBuilder connBuilder;
+ public F_login()
+ {
+ InitializeComponent();
+ comb_Authentication.SelectedIndex = 0;
+ connBuilder = new SqlConnectionStringBuilder();
+ }
+ public bool AuthenticationIsWindows = false;
+ private bool sucess = false;
+ F_Main fr = null;
+ private void btn_Connection_Click(object sender, EventArgs e)
+ {
+ if (!string.IsNullOrEmpty(comb_serverName.Text))
+ {
+ connBuilder.DataSource = comb_serverName.Text;
+ connBuilder.PersistSecurityInfo = true;
+ if (!AuthenticationIsWindows)
+ {
+ connBuilder.UserID = comb_UserName.Text;
+ connBuilder.Password = txt_PassWord.Text;
+ }
+ else
+ {
+ connBuilder.IntegratedSecurity = true;
+ }
+ try
+ {
+ //两种连接方式
+ //Data Source=.;Integrated Security=True;Persist Security Info=True
+ //Data Source=.;Persist Security Info=True;User ID=sa;Password=
+ using (SqlConnection dbConnection = new SqlConnection(connBuilder.ConnectionString))
+ {
+ dbConnection.Open();
+ DataTable tempDataTable = dbConnection.GetSchema(SqlClientMetaDataCollectionNames.Databases);
+ //DataTable tempDataTable = dbConnection.GetSchema("Databases"); //和相同效果
+ //cmbDatabase.DataSource = tempDataTable;
+ //cmbDatabase.DisplayMember = tempDataTable.Columns["database_name"].ColumnName;
+ //cmbDatabase.ValueMember = tempDataTable.Columns["database_name"].ColumnName;
+ //MessageBox.Show("Connected successfully!", "Connected", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ dbConnection.Close();
+ }
+ Model.EModel.connBuilder = connBuilder;
+ if (fr == null)
+ {
+ fr = new F_Main();
+ this.Hide();
+ fr.Show();
+ }
+ else {
+ fr.Close();
+ }
+ sucess = true;
+ //cmbDatabase.Enabled = sucess;
+ }
+ catch (SqlException)
+ {
+ txt_PassWord.Text = String.Empty;
+ connBuilder.Clear();
+ MessageBox.Show("Connection failed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+ else
+ {
+ connBuilder.Clear();
+ MessageBox.Show("Please select a server", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ }
+ }
+
+ private void btn_Cancel_Click(object sender, EventArgs e)
+ {
+ System.Environment.Exit(0);
+ }
+
+ private void comb_Authentication_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ if (string.IsNullOrEmpty(this.comb_Authentication.Text))
+ {
+ return;
+ }
+ if (this.comb_Authentication.Text == "Windows Authentication")
+ {
+ this.comb_UserName.Enabled = false;
+ this.txt_PassWord.Enabled = false;
+ this.check_Remember.Checked = false;
+ this.check_Remember.Enabled = false;
+ AuthenticationIsWindows = true;
+ }
+ else if (this.comb_Authentication.Text == "Sql Server Authentication")
+ {
+
+ this.comb_UserName.Enabled = true;
+ this.txt_PassWord.Enabled = true;
+ this.check_Remember.Enabled = true;
+ AuthenticationIsWindows = false;
+ }
+ else {
+ return;
+ }
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.resx
new file mode 100644
index 0000000..28a5aa8
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/F_login.resx
@@ -0,0 +1,609 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ AAD4+PgjwbCkWq2Yisipk4T/p5GC/6SOf/+ijHz/n4l5/5yFdf+ZgnL/lX5u/5J7af+Od2X/kXpoyKqZ
+ jlr4+Pgj+Pj4I/j4+CP4+Pgj+Pj4I/j4+CP4+Pgj+Pj4I/X19Rr///8IAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAMa4rVq5r56DramR1a+mkP+3ppX/s6OY/6SgmP+inpb/rZ2Q/7GajP+ul4f/q5OD/6iO
+ fv+njn3WqZSEg5yqjlp6yY5abNeQWmzXkFps15BabNeQWmzXkFps15Bac9uXR53otCL///8M////BAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAt6OVyLSwmNWuw53xus2p/9XPvP/Pzcj/p8fP/6fGz//Nysb/4Mu//97H
+ uv/cw7X/2r6u/8msnfKmjXzWfI9qyFC5a8g7zmzIO85syDvObMg7zmzIO85syDvObMhK0Xeii+GpVv//
+ /yT///8MAAAAAAAAAAAAAAAAAAAAAAAAAAC3opP/ubGc/73Qrf/O4sD/6ubV/+Xl5P++4e3/u97p/9zb
+ 2f/s2c//69XK/+nRxP/nzL7/0LSl/6OJeP97hWPvTrFlzzPMZb8zzGW/M8xlvzPMZb8zzGW/M8xlv0HP
+ caxq2I+EjuKrWKzlvyj///8M////BAAAAAAAAAAAAAAAALunmf/Ftqb/2tPB/+rm1f/06+H/9O7q/+fu
+ 7//f5OX/29DK/9fEuv/VwLX/0ryx/8+4rP+9ppj/nYV0/4Z7Ys9lmmNvMc5lPzHOZT8xzmU/Mc5lPzHO
+ ZT8xzmU/O8xrZEHPcaxP03uojuKrWP///yT///8MAAAAAAAAAAAAAAAAwK2fyMy5rdXhzsLx69nP/+vd
+ 1P/r39j/6t/Z/+HUzf/OvrT/w7Ck/8CsoP+8qJv/uaSX/66Yi/Kch3bWknpplo96ZjIAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAxzmU/M8xlv0DOb86D3qJr+fn5K////w4AAAAAAAAAAAAAAADPwbVazr+zg9C9
+ sNXPvK//zbuu/8q5rP/Htar/wa6j/7iklv+xnI7/rJeI/6iSg/+kjn7/oo191qeUhIOrnI1DrpeLFgAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAADHOZT8zzGW/Pc5uynbcll////8f////CgAAAAAAAAAAAAAAAMm4
+ rVrMr56DzqeS1c2kjf/Loor/yJ+H/8Sbg//Al3//vJJ7/7aNdv+xiHH/q4Ns/6Z+Z/+kf2nWq457g7Wj
+ lEXBsKcd////CP///wj///8I////CP///wj///8IRdBxRjTLZsI9zm7KdtyWX/f39yLw8PAR////CP//
+ /wj///8IuqKVyMaeiNXalXHx5ZJo/+WSaP/kkWf/4o9l/9+NY//aiWD/1IVd/86AWf/He1X/v3ZR/7N1
+ VPKjfGTWnINxnbWjlEX19fUa9fX1GvX19Rr19fUa9fX1GvX19Rpf14dTOcxrxkDOb86D3qJr+vr6Mff3
+ 9yL19fUa9fX1GvX19Rq6oZP/x5uE/+OPZv/zi1j/9Y5a//aOWv/1jVn/8otY/+6IVv/ohFP/4YBQ/9l6
+ TP/QdUj/vnRO/6N4X/+Zf27Isp+QWt/U1DC/tatMuKqhWriqoVq1p5xasJ+TWnuneYNSsmjWVrJq3Iis
+ hZS1ophrrJaMX6SOglqfjoJanI6CWr6lmP/Mn4n/6JNq//mQXP/7lGD//JZh//yVYP/6k17/+I9b//OL
+ WP/shlT/44FQ/9l6TP/FeFH/pXpg/5p/bsiyn5Bav7WrTKiXi5+jkYTIo5GEyJ+LfsiWfnDIiHxl1neB
+ YPJ2gF/0hXhi3I1wYs6La13Kh2payIFqWsh+aFrIwaqd/9Ckjf/smG3//ZVh//+baP//nWr//5xo//+Z
+ Zv/9lmH/+pFd//SMWf/shlT/4YBQ/8t8VP+ofGL/m4FvyLKfkFq4raRao5KHyKSShv+sm4//rZmM/6aM
+ ff+hhXX/noNy/52BcP+df27/k4Bo/3+GXP92f1X/d2tT/3hhUv/FrqP/06iS/++ccf//mmb//6Bx//+j
+ df//onL//59u//+caf/9l2P/+pFd//OLWP/ohFP/0IBX/6t/ZP+dg3HIsqGTWritp1qjkovIrJyT/8W2
+ rv/QvbP/zbGj/8yrnP/Nq5z/zKuc/8upmv+stIn/cctr/125Wf9ufFL/dl1P/8izqP/WrZf/8aB2//+e
+ bP//p3r//6p///+ofP//pXf//6Fw//+caf/9lmH/+I9b/+6IVv/Vg1n/roFm/56Ec8i1oZNauK2nWqOU
+ jcixo5z/1cnC/+bWzv/my77/5sa3/+jHuf/px7n/6Me4/8nRp/+M5Yf/b8tt/3SCWf92Xk//zLiu/9ix
+ nf/ypHv//6Ny//+tg///sYn//66F//+qf///pXf//59u//+ZZv/6k17/8otY/9mGW/+xg2j/n4Z1yLWk
+ llq4sKpao5aPyLOoof/b083/7+Pc/+/Zzv/w1Mf/8NXI//LWyf/01sr/6NbB/83Vrv+uuJD/in9n/3di
+ U//PvbT/27ai//OngP//pHX//6yB//+uhP//q4D//6Z6//6hcv/8m2v/+pZj//WPXP/uiFb/14Vb/7GD
+ af+iiHbIuKSWWriwqlqjmJHItauk/97Y1P/06+X/9eLY//Xd0v/13tL/997T//vg1f/32tD/7s7D/82w
+ o/+WfnH/emZX/9PDuv/eu6j/9KuF//+kdP//pHT//6Jy//+ebP/+mWf/+pRi//WQXv/vi1n/6YVU/+GA
+ UP/Nf1f/r4Nq/6OKeci4pJlau7KtWqSaksi2rab/3trW//Tt5//25dv/9+HW//fh1//44tj/++PZ//fd
+ 0//s0cX/zbKm/5iCdP9+alv/1si/yODAr9XtspPx9KuF//Snf//zo3r/8p50/++ab//qlWv/5ZFn/96M
+ ZP/XiGD/0INc/8OCYfKwiHDWqJCAn7+upEy7sq1appuVyLatqP/d2tb/8u3p//Xn4P/25dz/9uTc//fl
+ 3f/55t7/9eHY/+zWy//PuKz/nYh7/4RwYv/d1Mxa3si9g+DAr9Xfu6n/3Laj/9mxnf/XrZf/06iS/8+j
+ jf/Ln4j/xpqE/8GWf/+9knv/upN91rucioO/rqRM39TPMLuysFqnm5bItq2o/9zY1P/w7Oj/8url//Pp
+ 4//z6eP/8+jj//Po4//x5d7/7N3V/9PBt/+kkYT/jHhq//X19Rri19BH2cvDotbHv9DSwbnQz7y00My5
+ r9DJtKnQxbCk0MKrn9C/qJvQu6SW0Legk9C5o5WiybesR/b29hz39/cgu7KwWqablsi0q6b/2NPO/+nk
+ 3//o4Nv/593X/+bc1v/l29X/5NrU/+LW0P/e0Mj/ybmu/6SRg/+RfW7/////COjh4SLn3thW5t3WcOPY
+ 03Dh1s9w39PNcN3RynDazcZw2MrEcNbIwXDTxr9w08S9cNPEvlbZysoi7u7uD/b29hy4srBapJqWyLGo
+ ov/SysT/39XO/9bJwP/Rwrj/0MC2/86+s//Lu7H/x7ar/8Gvov+zoJL/nYl6/5J9bv8AAAAA////DP//
+ /yT///8w////MP///zD///8w////MP///zD///8w////MP///zD///8w////JP///wz///8I9fX1Gruy
+ sFqmm5jIs6ql/9bOyf/j2tP/2s3F/9XGvf/TxLv/0cK5/8/At//Lu7H/xLSo/7akmP+fjH//lIBy/wAA
+ AAD///8E////DP///xD///8Q////EP///xD///8Q////EP///xD///8Q////EP///xD///8M////BP//
+ /wj19fUau7WyWqifm8i5sq7/49/c//bz8P/z7er/8erm//Hq5v/w6eb/7+nm/+3m4v/o4Nr/0se//6uc
+ k/+Whnz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAA////CPX19Rq+uLJaqaKdyLu0r//j39z/9/Pw//Xw7P/07ur/8+3p//Ls6f/x7Oj/7+nl/+vk
+ 3v/Wy8T/r6GX/5uLgf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD///8I9fX1Gr64slqrop3It66p/9fOyP/l29T/39TM/9zQx//azsX/2MvC/9XI
+ wP/RxLz/zsC2/8Gyp/+smo7/oY2B/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj19fUavri1Wqyjn8i4r6r/187H/+PY0f/d0Mf/2crA/9fH
+ vP/Uw7j/0b+z/826rv/Is6f/vaib/62Yi/+lkIL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CPX19RrBu7haraajyL22s//i3dn/8uvn/+3i
+ 3P/q29P/6dfO/+fTyf/m0MT/4si8/9q+r//Kr6D/s5yP/6eShv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I9fX1GsO+u1qxq6jIwby6/+fl
+ 4//59fP/9e3p//Ln4f/y49z/8eDX//Hd0//t1sv/5sq9/9S5rP+4opb/qpaL/wAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj19fUaxsPBWrax
+ rsjFwb7/5+bk//f19P/z8O7/8e3q//Lr5//y6eT/8efh/+/i2//r2tL/2se+/72rof+unJH/AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CPX1
+ 9RrJxsNaurayyMO/vP/Z19X/4uDf/93c2v/b2db/3NjV/9zX1P/d19T/3dXR/9vQy//Qw7z/u6yk/7Gh
+ mP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAD///8I9fX1GszJxlq+ubXIvbi0/7+6t/+9uLX/trCu/7Ksqf+xq6f/sqyo/7WvrP+3sK3/uK+r/7et
+ p/+0qKH/s6We/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAP///wj19fUaz8nGWsC7tsi6tLD/sqyo/6qjoP+im5j/nZaT/5uUkf+dlpL/oZuY/6Se
+ m/+mn5v/qqKd/7Gmn/+1qKH/wAP//4AB//8AAAD/AAAAfwAA/z8AAP8/gAH/P4AB/z8AAP8/AAD+HwAA
+ wAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAgAHAAMADwAD//8AA///AAP//wAD//8AA///AAP//
+ wAD//8AA///AAP//wAD//8AA///AAP//wAA=
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.Designer.cs
new file mode 100644
index 0000000..8188b60
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.Designer.cs
@@ -0,0 +1,60 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class Form1Test
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.button1 = new System.Windows.Forms.Button();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(21, 227);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "button1";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // Form1Test
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(284, 262);
+ this.Controls.Add(this.button1);
+ this.Name = "Form1Test";
+ this.Text = "Form1Test";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button1;
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.cs
new file mode 100644
index 0000000..e64588d
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.cs
@@ -0,0 +1,472 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using System.Reflection;
+using System.Reflection.Emit;
+using System.IO;
+using System.CodeDom.Compiler;
+using Microsoft.CSharp;
+using System.CodeDom;
+using System.Threading;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class Form1Test : Form
+ {
+ public Form1Test()
+ {
+ InitializeComponent();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ DynamicCreateType1();
+ DynamicCreateType();
+ COdedongtai();
+ codeDongtai2();
+ //Test();
+ ////动态创建的类类型
+ //Type classType = DynamicCreateType();
+ ////调用有参数的构造函数
+ //Type[] ciParamsTypes = new Type[] { typeof(string) };
+ //object[] ciParamsValues = new object[] { "Hello World" };
+ //ConstructorInfo ci = classType.GetConstructor(ciParamsTypes);
+ //object Vector = ci.Invoke(ciParamsValues);
+ ////调用方法
+ //object[] methedParams = new object[] { };
+ //MessageBox.Show(classType.InvokeMember("get_Field", BindingFlags.InvokeMethod, null, Vector, methedParams).ToString());
+ ////Console.ReadKey();
+ }
+ //动态创建的动态类型
+ public static Type DynamicCreateType()
+ {
+ //动态创建程序集
+ AssemblyName DemoName = new AssemblyName("OSMeteorAssemblyDB");
+ AssemblyBuilder dynamicAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(DemoName, AssemblyBuilderAccess.RunAndSave);
+ //动态创建模块
+ AssemblyName aName = new AssemblyName("DynamicAssemblyExample");
+ ModuleBuilder mb = dynamicAssembly.DefineDynamicModule(DemoName.Name, DemoName.Name + ".dll");
+
+ //ModuleBuilder modBuild = dynamicAssembly.DefineDynamicModule("ModuleOne", "NestedEnum.dll");
+ //动态创建类MyClass
+ TypeBuilder Ptb = mb.DefineType("Eneity", TypeAttributes.Public);
+ //TypeBuilder tb = mb.DefineType("table", TypeAttributes.Public);
+ TypeBuilder tb = Ptb.DefineNestedType("Table1", TypeAttributes.NestedPublic | TypeAttributes.Sealed, null);
+
+ //动态创建字段
+ FieldBuilder fb = tb.DefineField("myField", typeof(System.String), FieldAttributes.Private);
+ //动态创建构造函数
+ Type[] clorType = new Type[] { typeof(System.String) };
+ ConstructorBuilder cb1 = tb.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, clorType);
+ //生成指令
+ ILGenerator ilg = cb1.GetILGenerator();//生成 Microsoft 中间语言 (MSIL) 指令
+ ilg.Emit(OpCodes.Ldarg_0);
+ ilg.Emit(OpCodes.Call, typeof(object).GetConstructor(Type.EmptyTypes));
+ ilg.Emit(OpCodes.Ldarg_0);
+ ilg.Emit(OpCodes.Ldarg_1);
+ ilg.Emit(OpCodes.Stfld, fb);
+ ilg.Emit(OpCodes.Ret);
+ //动态创建属性
+ PropertyBuilder pb = tb.DefineProperty("MyProperty", PropertyAttributes.HasDefault, typeof(string), null);
+ //动态创建方法
+ MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName;
+ MethodBuilder myMethod = tb.DefineMethod("get_Field", getSetAttr, typeof(string), Type.EmptyTypes);
+ //生成指令
+ ILGenerator numberGetIL = myMethod.GetILGenerator();
+ numberGetIL.Emit(OpCodes.Ldarg_0);
+ numberGetIL.Emit(OpCodes.Ldfld, fb);
+ numberGetIL.Emit(OpCodes.Ret);
+ //使用动态类创建类型
+ Type classType1 = Ptb.CreateType();
+ Type classType = tb.CreateType();
+ //保存动态创建的程序集 (程序集将保存在程序目录下调试时就在Debug下)
+ dynamicAssembly.Save(DemoName.Name + ".dll");
+
+ //创建类
+ return classType;
+ }
+ //动态创建的动态类型
+ public static Type DynamicCreateType1()
+ {
+ //动态创建程序集
+ AssemblyName DemoName = new AssemblyName("DynamicAssembly");
+ AssemblyBuilder dynamicAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(DemoName, AssemblyBuilderAccess.RunAndSave);
+ //动态创建模块
+ ModuleBuilder mb = dynamicAssembly.DefineDynamicModule(DemoName.Name, DemoName.Name + ".dll");
+ //动态创建类MyClass
+ TypeBuilder tb = mb.DefineType("MyClass", TypeAttributes.Public);
+ //动态创建字段
+ FieldBuilder fb = tb.DefineField("myField", typeof(System.String), FieldAttributes.Private);
+ //动态创建构造函数
+ Type[] clorType = new Type[] { typeof(System.String) };
+ ConstructorBuilder cb1 = tb.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, clorType);
+ //生成指令
+ ILGenerator ilg = cb1.GetILGenerator();//生成 Microsoft 中间语言 (MSIL) 指令
+ ilg.Emit(OpCodes.Ldarg_0);
+ ilg.Emit(OpCodes.Call, typeof(object).GetConstructor(Type.EmptyTypes));
+ ilg.Emit(OpCodes.Ldarg_0);
+ ilg.Emit(OpCodes.Ldarg_1);
+ ilg.Emit(OpCodes.Stfld, fb);
+ ilg.Emit(OpCodes.Ret);
+ //动态创建属性
+ PropertyBuilder pb = tb.DefineProperty("MyProperty", PropertyAttributes.HasDefault, typeof(string), null);
+ //动态创建方法
+ MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName;
+ MethodBuilder myMethod = tb.DefineMethod("get_Field", getSetAttr, typeof(string), Type.EmptyTypes);
+ //生成指令
+ ILGenerator numberGetIL = myMethod.GetILGenerator();
+ numberGetIL.Emit(OpCodes.Ldarg_0);
+ numberGetIL.Emit(OpCodes.Ldfld, fb);
+ numberGetIL.Emit(OpCodes.Ret);
+ //使用动态类创建类型
+ Type classType = tb.CreateType();
+ //保存动态创建的程序集 (程序集将保存在程序目录下调试时就在Debug下)
+ dynamicAssembly.Save(DemoName.Name + ".dll");
+ //创建类
+ return classType;
+ }
+ public class CodeGenerator
+ {
+ AssemblyBuilder myAssemblyBuilder;
+ public CodeGenerator()
+ {
+ // Get the current application domain for the current thread.
+ AppDomain myCurrentDomain = AppDomain.CurrentDomain;
+ AssemblyName myAssemblyName = new AssemblyName();
+ myAssemblyName.Name = "TempAssembly";
+
+ // Define a dynamic assembly in the current application domain.
+ myAssemblyBuilder = myCurrentDomain.DefineDynamicAssembly
+ (myAssemblyName, AssemblyBuilderAccess.Run);
+
+ // Define a dynamic module in this assembly.
+ ModuleBuilder myModuleBuilder = myAssemblyBuilder.
+ DefineDynamicModule("TempModule");
+
+ // Define a runtime class with specified name and attributes.
+ TypeBuilder myTypeBuilder = myModuleBuilder.DefineType
+ ("TempClass", TypeAttributes.Public);
+
+ // Add 'Greeting' field to the class, with the specified attribute and type.
+ FieldBuilder greetingField = myTypeBuilder.DefineField("Greeting",
+ typeof(String), FieldAttributes.Public);
+ Type[] myMethodArgs = { typeof(String) };
+
+ // Add 'MyMethod' method to the class, with the specified attribute and signature.
+ MethodBuilder myMethod = myTypeBuilder.DefineMethod("MyMethod",
+ MethodAttributes.Public, CallingConventions.Standard, null, myMethodArgs);
+
+ ILGenerator methodIL = myMethod.GetILGenerator();
+ methodIL.EmitWriteLine("In the method...");
+ methodIL.Emit(OpCodes.Ldarg_0);
+ methodIL.Emit(OpCodes.Ldarg_1);
+ methodIL.Emit(OpCodes.Stfld, greetingField);
+ methodIL.Emit(OpCodes.Ret);
+ myTypeBuilder.CreateType();
+ }
+ public AssemblyBuilder MyAssembly
+ {
+ get
+ {
+ return this.myAssemblyBuilder;
+ }
+ }
+ }
+ public void COdedongtai() {
+ CodeGenerator myCodeGenerator = new CodeGenerator();
+ // Get the assembly builder for 'myCodeGenerator' object.
+ AssemblyBuilder myAssemblyBuilder = myCodeGenerator.MyAssembly;
+ // Get the module builder for the above assembly builder object .
+ ModuleBuilder myModuleBuilder = myAssemblyBuilder.
+ GetDynamicModule("TempModule");
+ MessageBox.Show("The fully qualified name and path to this "
+ + "module is :" + myModuleBuilder.FullyQualifiedName);
+ Type myType = myModuleBuilder.GetType("TempClass");
+ MethodInfo myMethodInfo =
+ myType.GetMethod("MyMethod");
+ // Get the token used to identify the method within this module.
+ MethodToken myMethodToken =
+ myModuleBuilder.GetMethodToken(myMethodInfo);
+ MessageBox.Show(String.Format("Token used to identify the method of 'myType'"
+ + " within the module is {0:x}", myMethodToken.Token));
+ object[] args = { "Hello." };
+ object myObject = Activator.CreateInstance(myType, null, null);
+ myMethodInfo.Invoke(myObject, args);
+ }
+ public void codeDongtai2() {
+ AssemblyName aName = new AssemblyName("DynamicAssemblyExample");
+ AssemblyBuilder ab =
+ AppDomain.CurrentDomain.DefineDynamicAssembly(
+ aName,
+ AssemblyBuilderAccess.RunAndSave);
+
+
+ // For a single-module assembly, the module name is usually
+ // the assembly name plus an extension.
+ ModuleBuilder mb =
+ ab.DefineDynamicModule(aName.Name, aName.Name + ".dll");
+ //利用AssemblyBuilder创建ModuleBuilder
+ ModuleBuilder newModule = ab.DefineDynamicModule("SayHello");
+ //创建一个公共类MySayHello
+ //TypeBuilder myType = newModule.DefineType("MySayHello", TypeAttributes.Public | TypeAttributes.Class);
+
+
+ //TypeBuilder tb = mb.DefineType(
+ // "MyDynamicType",
+ // TypeAttributes.Public);
+
+ TypeBuilder tb = mb.DefineType(
+ "MyDynamicType",
+ TypeAttributes.Public);
+ // Add a private field of type int (Int32).
+ FieldBuilder fbNumber = tb.DefineField(
+ "m_number",
+ typeof(int),
+ FieldAttributes.Private);
+
+ // Define a constructor that takes an integer argument and
+ // stores it in the private field.
+ Type[] parameterTypes = { typeof(int) };
+ ConstructorBuilder ctor1 = tb.DefineConstructor(
+ MethodAttributes.Public,
+ CallingConventions.Standard,
+ parameterTypes);
+
+ ILGenerator ctor1IL = ctor1.GetILGenerator();
+ // For a constructor, argument zero is a reference to the new
+ // instance. Push it on the stack before calling the base
+ // class constructor. Specify the default constructor of the
+ // base class (System.Object) by passing an empty array of
+ // types (Type.EmptyTypes) to GetConstructor.
+ ctor1IL.Emit(OpCodes.Ldarg_0);
+ ctor1IL.Emit(OpCodes.Call,
+ typeof(object).GetConstructor(Type.EmptyTypes));
+ // Push the instance on the stack before pushing the argument
+ // that is to be assigned to the private field m_number.
+ ctor1IL.Emit(OpCodes.Ldarg_0);
+ ctor1IL.Emit(OpCodes.Ldarg_1);
+ ctor1IL.Emit(OpCodes.Stfld, fbNumber);
+ ctor1IL.Emit(OpCodes.Ret);
+
+ // Define a default constructor that supplies a default value
+ // for the private field. For parameter types, pass the empty
+ // array of types or pass null.
+ ConstructorBuilder ctor0 = tb.DefineConstructor(
+ MethodAttributes.Public,
+ CallingConventions.Standard,
+ Type.EmptyTypes);
+
+ ILGenerator ctor0IL = ctor0.GetILGenerator();
+ // For a constructor, argument zero is a reference to the new
+ // instance. Push it on the stack before pushing the default
+ // value on the stack, then call constructor ctor1.
+ ctor0IL.Emit(OpCodes.Ldarg_0);
+ ctor0IL.Emit(OpCodes.Ldc_I4_S, 42);
+ ctor0IL.Emit(OpCodes.Call, ctor1);
+ ctor0IL.Emit(OpCodes.Ret);
+
+ // Define a property named Number that gets and sets the private
+ // field.
+ //
+ // The last argument of DefineProperty is null, because the
+ // property has no parameters. (If you don't specify null, you must
+ // specify an array of Type objects. For a parameterless property,
+ // use the built-in array with no elements: Type.EmptyTypes)
+ PropertyBuilder pbNumber = tb.DefineProperty(
+ "Number",
+ PropertyAttributes.HasDefault,
+ typeof(int),
+ null);
+
+ // The property "set" and property "get" methods require a special
+ // set of attributes.
+ MethodAttributes getSetAttr = MethodAttributes.Public |
+ MethodAttributes.SpecialName | MethodAttributes.HideBySig;
+
+ // Define the "get" accessor method for Number. The method returns
+ // an integer and has no arguments. (Note that null could be
+ // used instead of Types.EmptyTypes)
+ MethodBuilder mbNumberGetAccessor = tb.DefineMethod(
+ "get_Number",
+ getSetAttr,
+ typeof(int),
+ Type.EmptyTypes);
+
+ ILGenerator numberGetIL = mbNumberGetAccessor.GetILGenerator();
+ // For an instance property, argument zero is the instance. Load the
+ // instance, then load the private field and return, leaving the
+ // field value on the stack.
+ numberGetIL.Emit(OpCodes.Ldarg_0);
+ numberGetIL.Emit(OpCodes.Ldfld, fbNumber);
+ numberGetIL.Emit(OpCodes.Ret);
+
+ // Define the "set" accessor method for Number, which has no return
+ // type and takes one argument of type int (Int32).
+ MethodBuilder mbNumberSetAccessor = tb.DefineMethod(
+ "set_Number",
+ getSetAttr,
+ null,
+ new Type[] { typeof(int) });
+
+ ILGenerator numberSetIL = mbNumberSetAccessor.GetILGenerator();
+ // Load the instance and then the numeric argument, then store the
+ // argument in the field.
+ numberSetIL.Emit(OpCodes.Ldarg_0);
+ numberSetIL.Emit(OpCodes.Ldarg_1);
+ numberSetIL.Emit(OpCodes.Stfld, fbNumber);
+ numberSetIL.Emit(OpCodes.Ret);
+
+ // Last, map the "get" and "set" accessor methods to the
+ // PropertyBuilder. The property is now complete.
+ pbNumber.SetGetMethod(mbNumberGetAccessor);
+ pbNumber.SetSetMethod(mbNumberSetAccessor);
+
+ // Define a method that accepts an integer argument and returns
+ // the product of that integer and the private field m_number. This
+ // time, the array of parameter types is created on the fly.
+ MethodBuilder meth = tb.DefineMethod(
+ "MyMethod",
+ MethodAttributes.Public,
+ typeof(int),
+ new Type[] { typeof(int) });
+
+ ILGenerator methIL = meth.GetILGenerator();
+ // To retrieve the private instance field, load the instance it
+ // belongs to (argument zero). After loading the field, load the
+ // argument one and then multiply. Return from the method with
+ // the return value (the product of the two numbers) on the
+ // execution stack.
+ methIL.Emit(OpCodes.Ldarg_0);
+ methIL.Emit(OpCodes.Ldfld, fbNumber);
+ methIL.Emit(OpCodes.Ldarg_1);
+ methIL.Emit(OpCodes.Mul);
+ methIL.Emit(OpCodes.Ret);
+
+ // Finish the type.
+ Type t = tb.CreateType();
+
+ // The following line saves the single-module assembly. This
+ // requires AssemblyBuilderAccess to include Save. You can now
+ // type "ildasm MyDynamicAsm.dll" at the command prompt, and
+ // examine the assembly. You can also write a program that has
+ // a reference to the assembly, and use the MyDynamicType type.
+ //
+ ab.Save(aName.Name + ".dll");
+
+ // Because AssemblyBuilderAccess includes Run, the code can be
+ // executed immediately. Start by getting reflection objects for
+ // the method and the property.
+ MethodInfo mi = t.GetMethod("MyMethod");
+ PropertyInfo pi = t.GetProperty("Number");
+
+ // Create an instance of MyDynamicType using the default
+ // constructor.
+ object o1 = Activator.CreateInstance(t);
+
+ // Display the value of the property, then change it to 127 and
+ // display it again. Use null to indicate that the property
+ // has no index.
+ Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, null));
+ pi.SetValue(o1, 127, null);
+ Console.WriteLine("o1.Number: {0}", pi.GetValue(o1, null));
+
+ // Call MyMethod, passing 22, and display the return value, 22
+ // times 127. Arguments must be passed as an array, even when
+ // there is only one.
+ object[] arguments = { 22 };
+ Console.WriteLine("o1.MyMethod(22): {0}",
+ mi.Invoke(o1, arguments));
+
+ // Create an instance of MyDynamicType using the constructor
+ // that specifies m_Number. The constructor is identified by
+ // matching the types in the argument array. In this case,
+ // the argument array is created on the fly. Display the
+ // property value.
+ object o2 = Activator.CreateInstance(t,
+ new object[] { 5280 });
+ Console.WriteLine("o2.Number: {0}", pi.GetValue(o2, null));
+
+ }
+ ///
+ ///ReflectionOfDefineDynamicAssembly 的摘要说明
+ ///
+ ///
+ public interface ISayHello
+ {
+ int SayHello();
+ }
+ public class ReflectionOfDefineDynamicAssembly
+ {
+ private ISayHello sayHello = null;
+ public ReflectionOfDefineDynamicAssembly()
+ {
+ //
+ //TODO: 在此处添加构造函数逻辑
+ //
+ }
+
+ private Assembly EmitAssembly(string sMsg)
+ {
+ //创建程序集名称
+ AssemblyName assemblyName = new AssemblyName("SayHelloAssembly");
+ //创建新的动态程序集
+ AssemblyBuilder newAssembly = Thread.GetDomain().DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
+ //利用AssemblyBuilder创建ModuleBuilder
+ ModuleBuilder newModule = newAssembly.DefineDynamicModule("SayHello");
+ //创建一个公共类MySayHello
+ TypeBuilder myType = newModule.DefineType("MySayHello", TypeAttributes.Public | TypeAttributes.Class);
+ //使得该类实现ISayHello接口
+ myType.AddInterfaceImplementation(typeof(ISayHello));
+ //方法的传入参数
+ Type[] paramTypes = new Type[0];//不传入参数
+ //方法返回的类型
+ Type returnType = typeof(int);
+ //定义接口中的方法
+ MethodBuilder myMethod = myType.DefineMethod("SayHello", MethodAttributes.Public | MethodAttributes.Virtual, returnType, paramTypes);
+ //获取ILGenerator
+ ILGenerator generator = myMethod.GetILGenerator();
+ //编写代码
+ generator.EmitWriteLine("Hello " + sMsg);
+ //入栈
+ generator.Emit(OpCodes.Ldc_I4, 1);
+ //返回栈顶元素
+ generator.Emit(OpCodes.Ret);
+ //获得接口的方法信息
+ MethodInfo info = typeof(ISayHello).GetMethod("SayHello");
+ //规定方法重载
+ myType.DefineMethodOverride(myMethod, info);
+ //创建类型
+ myType.CreateType();
+ return newAssembly;
+ }
+ //动态创建程序集
+ //初始化接口变量
+ public void GenerateCode(string sMsg)
+ {
+ Assembly theAssembly = EmitAssembly(sMsg);
+ sayHello = (ISayHello)theAssembly.CreateInstance("MySayHello");
+ }
+
+ //设置接口变量 如果不为空则
+ public int DoSayHello(string sMsg)
+ {
+ if (sayHello != null)
+ {
+ GenerateCode(sMsg);
+ }
+ return sayHello.SayHello();
+ }
+ }
+ public void codeDongtai3()
+ {
+ ReflectionOfDefineDynamicAssembly test = new ReflectionOfDefineDynamicAssembly();
+ int i = test.DoSayHello("1987Raymond/果汁分你一半");
+ Console.WriteLine(i);
+ }
+ }
+
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Form1Test.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/BaseClass.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/BaseClass.cs
new file mode 100644
index 0000000..fc0eb74
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/BaseClass.cs
@@ -0,0 +1,1177 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+
+namespace CsharpOSMeteorCodeGenerator.Model
+{
+ public class BaseClass
+ {
+
+ public static readonly string str_GeneratorTime = "//===============================================================================\r\n//GeneratorDate: " +
+ System.DateTime.Now + "\r\n//===============================================================================\r\n";
+ public static readonly string str_stat = str_GeneratorTime+@"using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Data;
+using System.Data.SqlClient;
+namespace {0}
+{{
+ public class {1}
+ {{
+";
+ public const string str_end = @"
+ }
+}
+";
+ public const string strtable_eneity =
+ @"
+ public class {0}
+ {{ {1}
+ }}
+";
+ public class BaseTableLinqClass
+ {
+ public const string strtablelinq =
+ @"
+{0}
+";
+ public const string strtablelinqadd = @"
+ public static int {0}Add(Entity.{1} obj)
+ {{
+ int rs = 0;//0 >>add failure
+ //1 >>Has been in existence can't repeat to add
+ //2 >>add success
+ using (DataObjectDataContext dt = new DataObjectDataContext())
+ {{
+ var query = from s in dt.{2}
+ where (your conditions)
+ select s ;
+ if (query.ToList().Count > 0)
+ {{
+ rs = 1;
+ }}
+ else
+ {{
+ {3}
+ dt.{4}.InsertOnSubmit(newojb);
+ dt.SubmitChanges();
+ rs = 2;
+ }}
+ }}
+ return rs;
+ }}";
+ public const string strtablelinqdelete = @"
+ public static int {0}Delete(string objid)
+ {{
+ int rs = 0; // 0 failure
+ //1 Delete the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var query = db.{1}.SingleOrDefault<{2}>(s => s.id == System.Guid.Parse(objid));
+ if (query == null)
+ {{
+ rs = 1;
+ return rs;
+ }}
+ db.{3}.DeleteOnSubmit(query);
+ db.SubmitChanges();
+ rs=2;
+ }}
+ return rs;
+ }}";
+ public const string strtablelinqupdate = @"
+ public static int {0}Update(Entity.{1} obj)
+ {{
+ int rs = 0;// 0 failure
+ //1 update the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var query = db.{2}.SingleOrDefault<{3}>(s => s.id == System.Guid.Parse(obj.id));
+ if (query == null)
+ {{
+ rs = 1;
+ return rs;
+ }}{4}
+ db.SubmitChanges();
+ rs = 2;
+
+ }}
+ return rs;
+ }}";
+ public const string strtablelinqselect = @"
+ public static List getALLuserlist()
+ {{
+ List rslist=new List();
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var querylist = from s in db.{3} orderby s.id select s ;
+ if(querylist==null)
+ {{
+ return rslist;
+ }}
+ foreach (var obj in querylist)
+ {{
+ Entity.{4} query=new Entity.{5} ();{6}
+ rslist.Add(query);
+ }}
+ }}
+ return rslist;
+ }}";
+ public const string strtablelinqselectToIEnumerable = @"
+ public static IEnumerable getALL{1}ToIEnumerable(?Expression> expression,int isall)
+ {{
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ if (isall == 1)
+ {{
+ return db.{3}.Rows.Cast();
+ }}
+ else
+ {{
+ return db.{5}.Rows.Cast().AsQueryable().Where(expression);
+ }}
+ }}
+ }}";
+
+ }
+ #region 创建辅助类
+ public static void CreateSqlHelper(string Helperlocation,string namespaceStr)
+ {
+ Helperlocation += "\\SQLHelper.cs";
+ using (StreamWriter sw = File.CreateText(Helperlocation))
+ {
+ //System.IO.FileStream fs = new System.IO.FileStream(Helperlocation, System.IO.FileMode.CreateNew);
+ //System.IO.StreamWriter sw = new System.IO.StreamWriter(fs);
+ sw.WriteLine("using System;");
+ sw.WriteLine("using System.Configuration;");
+ sw.WriteLine("using System.Data;");
+ sw.WriteLine("using System.Data.SqlClient;");
+ sw.WriteLine("using System.Collections;");
+ sw.WriteLine("");
+ sw.WriteLine("namespace " + namespaceStr);
+ sw.WriteLine("{");
+ sw.WriteLine(" public abstract class SqlHelper");
+ sw.WriteLine(" {");
+ sw.WriteLine(" //DBConnectionString");
+ sw.WriteLine(" public static readonly string ConnectionString = ConfigurationManager.AppSettings[\"ConnectionString\"];");
+ sw.WriteLine("");
+ sw.WriteLine(" // Hashtable to store cached parameters");
+ sw.WriteLine(" private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// a valid connection string for a SqlConnection");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// an int representing the number of rows affected by the command");
+ sw.WriteLine(" public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine("");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" using (SqlConnection conn = new SqlConnection(connectionString))");
+ sw.WriteLine(" {");
+ sw.WriteLine(" PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" int val = cmd.ExecuteNonQuery();");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand (that returns no resultset) against an existing database connection ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// an existing database connection");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// an int representing the number of rows affected by the command");
+ sw.WriteLine(" public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" int val = cmd.ExecuteNonQuery();");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand (that returns no resultset) using an existing SQL Transaction ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// an existing sql transaction");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// an int representing the number of rows affected by the command");
+ sw.WriteLine(" public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" int val = cmd.ExecuteNonQuery();");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand that returns a resultset against the database specified in the connection string ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// a valid connection string for a SqlConnection");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// A SqlDataReader containing the results");
+ sw.WriteLine(" public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" SqlConnection conn = new SqlConnection(connectionString);");
+ sw.WriteLine(" // we use a try/catch here because if the method throws an exception we want to ");
+ sw.WriteLine(" // close the connection throw code, because no datareader will exist, hence the ");
+ sw.WriteLine(" // commandBehaviour.CloseConnection will not work");
+ sw.WriteLine(" try");
+ sw.WriteLine(" {");
+ sw.WriteLine(" PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return rdr;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" catch");
+ sw.WriteLine(" {");
+ sw.WriteLine(" conn.Close();");
+ sw.WriteLine(" throw;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// a valid connection string for a SqlConnection");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// An object that should be converted to the expected type using Convert.To{Type}");
+ sw.WriteLine(" public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" using (SqlConnection connection = new SqlConnection(connectionString))");
+ sw.WriteLine(" {");
+ sw.WriteLine(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" object val = cmd.ExecuteScalar();");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static object ExecuteScalar(string sql)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" cmd.CommandText = sql;");
+ sw.WriteLine(" using (SqlConnection connection = new SqlConnection(ConnectionString))");
+ sw.WriteLine(" {");
+ sw.WriteLine(" cmd.Connection = connection;");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" object val = cmd.ExecuteScalar();");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Execute a SqlCommand that returns the first column of the first record against an existing database connection ");
+ sw.WriteLine(" /// using the provided parameters.");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// e.g.: ");
+ sw.WriteLine(" /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// an existing database connection");
+ sw.WriteLine(" /// the CommandType (stored procedure, text, etc.)");
+ sw.WriteLine(" /// the stored procedure name or T-SQL command");
+ sw.WriteLine(" /// an array of SqlParamters used to execute the command");
+ sw.WriteLine(" /// An object that should be converted to the expected type using Convert.To{Type}");
+ sw.WriteLine(" public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" object val = cmd.ExecuteScalar();");
+ sw.WriteLine(" cmd.Parameters.Clear();");
+ sw.WriteLine(" return val;");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// add parameter array to the cache");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Key to the parameter cache");
+ sw.WriteLine(" /// an array of SqlParamters to be cached");
+ sw.WriteLine(" public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" parmCache[cacheKey] = commandParameters;");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Retrieve cached parameters");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// key used to lookup parameters");
+ sw.WriteLine(" /// Cached SqlParamters array");
+ sw.WriteLine(" public static SqlParameter[] GetCachedParameters(string cacheKey)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];");
+ sw.WriteLine(" if (cachedParms == null)");
+ sw.WriteLine(" return null;");
+ sw.WriteLine(" SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];");
+ sw.WriteLine(" for (int i = 0, j = cachedParms.Length; i < j; i++)");
+ sw.WriteLine(" clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();");
+ sw.WriteLine(" return clonedParms;");
+ sw.WriteLine(" }");
+ sw.WriteLine("");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// Prepare a command for execution");
+ sw.WriteLine(" /// ");
+ sw.WriteLine(" /// SqlCommand object");
+ sw.WriteLine(" /// SqlConnection object");
+ sw.WriteLine(" /// SqlTransaction object");
+ sw.WriteLine(" /// Cmd type e.g. stored procedure or text");
+ sw.WriteLine(" /// Command text, e.g. Select * from Products");
+ sw.WriteLine(" /// SqlParameters to use in the command");
+ sw.WriteLine(" private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" if (conn.State != ConnectionState.Open)");
+ sw.WriteLine(" conn.Open();");
+ sw.WriteLine(" cmd.Connection = conn;");
+ sw.WriteLine(" cmd.CommandText = cmdText;");
+ sw.WriteLine(" if (trans != null)");
+ sw.WriteLine(" cmd.Transaction = trans;");
+ sw.WriteLine(" cmd.CommandType = cmdType;");
+ sw.WriteLine(" if (cmdParms != null)");
+ sw.WriteLine(" {");
+ //sw.WriteLine(" foreach (SqlParameter parm in cmdParms)");
+ //sw.WriteLine(" cmd.Parameters.Add(parm);");
+ sw.WriteLine(" cmd.Parameters.AddRange(cmdParms);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static SqlDataReader ExecuteReader(string sql)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" SqlConnection connection = new SqlConnection(ConnectionString);");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" cmd.CommandText = sql;");
+ sw.WriteLine(" cmd.Connection = connection;");
+ sw.WriteLine(" return cmd.ExecuteReader(CommandBehavior.CloseConnection);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static int ExecuteNonQuery(string sql)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" using (SqlConnection connection = new SqlConnection(ConnectionString))");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" cmd.CommandText = sql;");
+ sw.WriteLine(" cmd.Connection = connection;");
+ sw.WriteLine(" int i = cmd.ExecuteNonQuery();");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" return i;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlConnection connection = new SqlConnection(connectionString);");
+ sw.WriteLine(" try");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sw.WriteLine(" DataSet dt = new DataSet();");
+ sw.WriteLine(" adp.Fill(dt);");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" return dt;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" catch (Exception ex)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" throw (ex);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" finally");
+ sw.WriteLine(" {");
+ sw.WriteLine(" if (connection.State != ConnectionState.Closed)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static DataSet ExecuteDataSet(string sql)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlConnection connection = new SqlConnection(ConnectionString);");
+ sw.WriteLine(" try");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand(sql, connection);");
+ sw.WriteLine(" cmd.CommandType = CommandType.Text;");
+ sw.WriteLine(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sw.WriteLine(" DataSet dt = new DataSet();");
+ sw.WriteLine(" adp.Fill(dt);");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" return dt;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" catch (Exception ex)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" throw (ex);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" finally");
+ sw.WriteLine(" {");
+ sw.WriteLine(" if (connection.State != ConnectionState.Closed)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" /// Get the DataTable object by the query");
+ sw.WriteLine(" public static DataTable ExecuteGetDataTableFromTableName(string sql)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" DataTable dt = new DataTable();");
+ sw.WriteLine(" using (SqlConnection conn = new SqlConnection(ConnectionString))");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlCommand scCommand = conn.CreateCommand();");
+ sw.WriteLine(" scCommand.CommandText = sql;");
+ sw.WriteLine(" SqlDataAdapter sdaAdapter = new SqlDataAdapter(scCommand);");
+ sw.WriteLine(" sdaAdapter.Fill(dt);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" return dt;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" public static DataTable ExecuteDataTable(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" SqlConnection connection = new SqlConnection(connectionString);");
+ sw.WriteLine(" try");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Open();");
+ sw.WriteLine(" SqlCommand cmd = new SqlCommand();");
+ sw.WriteLine(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sw.WriteLine(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sw.WriteLine(" DataTable dt = new DataTable();");
+ sw.WriteLine(" adp.Fill(dt);");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" return dt;");
+ sw.WriteLine(" }");
+ sw.WriteLine(" catch (Exception ex)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" throw (ex);");
+ sw.WriteLine(" }");
+ sw.WriteLine(" finally");
+ sw.WriteLine(" {");
+ sw.WriteLine(" if (connection.State != ConnectionState.Closed)");
+ sw.WriteLine(" {");
+ sw.WriteLine(" connection.Close();");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine(" }");
+ sw.WriteLine("}");
+ sw.Close();
+ }
+ }
+ public static string GetStrSQLHelper(string namespaceStr) {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("using System;");
+ sb.Append("using System.Configuration;");
+ sb.Append("using System.Data;");
+ sb.Append("using System.Data.SqlClient;");
+ sb.Append("using System.Collections;");
+ sb.Append("");
+ sb.Append("namespace " + namespaceStr);
+ sb.Append("{");
+ sb.Append(" public abstract class SqlHelper");
+ sb.Append(" {");
+ sb.Append(" //DBConnectionString");
+ sb.Append(" public static readonly string ConnectionString = ConfigurationManager.AppSettings[\"ConnectionString\"];");
+ sb.Append("");
+ sb.Append(" // Hashtable to store cached parameters");
+ sb.Append(" private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// a valid connection string for a SqlConnection");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// an int representing the number of rows affected by the command");
+ sb.Append(" public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append("");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" using (SqlConnection conn = new SqlConnection(connectionString))");
+ sb.Append(" {");
+ sb.Append(" PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" int val = cmd.ExecuteNonQuery();");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand (that returns no resultset) against an existing database connection ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// an existing database connection");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// an int representing the number of rows affected by the command");
+ sb.Append(" public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" int val = cmd.ExecuteNonQuery();");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand (that returns no resultset) using an existing SQL Transaction ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// an existing sql transaction");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// an int representing the number of rows affected by the command");
+ sb.Append(" public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);");
+ sb.Append(" int val = cmd.ExecuteNonQuery();");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand that returns a resultset against the database specified in the connection string ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// a valid connection string for a SqlConnection");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// A SqlDataReader containing the results");
+ sb.Append(" public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" SqlConnection conn = new SqlConnection(connectionString);");
+ sb.Append(" // we use a try/catch here because if the method throws an exception we want to ");
+ sb.Append(" // close the connection throw code, because no datareader will exist, hence the ");
+ sb.Append(" // commandBehaviour.CloseConnection will not work");
+ sb.Append(" try");
+ sb.Append(" {");
+ sb.Append(" PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return rdr;");
+ sb.Append(" }");
+ sb.Append(" catch");
+ sb.Append(" {");
+ sb.Append(" conn.Close();");
+ sb.Append(" throw;");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// a valid connection string for a SqlConnection");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// An object that should be converted to the expected type using Convert.To{Type}");
+ sb.Append(" public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" using (SqlConnection connection = new SqlConnection(connectionString))");
+ sb.Append(" {");
+ sb.Append(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" object val = cmd.ExecuteScalar();");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" public static object ExecuteScalar(string sql)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" cmd.CommandText = sql;");
+ sb.Append(" using (SqlConnection connection = new SqlConnection(ConnectionString))");
+ sb.Append(" {");
+ sb.Append(" cmd.Connection = connection;");
+ sb.Append(" connection.Open();");
+ sb.Append(" object val = cmd.ExecuteScalar();");
+ sb.Append(" connection.Close();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Execute a SqlCommand that returns the first column of the first record against an existing database connection ");
+ sb.Append(" /// using the provided parameters.");
+ sb.Append(" /// ");
+ sb.Append(" /// ");
+ sb.Append(" /// e.g.: ");
+ sb.Append(" /// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, \"PublishOrders\", new SqlParameter(\"@prodid\", 24));");
+ sb.Append(" /// ");
+ sb.Append(" /// an existing database connection");
+ sb.Append(" /// the CommandType (stored procedure, text, etc.)");
+ sb.Append(" /// the stored procedure name or T-SQL command");
+ sb.Append(" /// an array of SqlParamters used to execute the command");
+ sb.Append(" /// An object that should be converted to the expected type using Convert.To{Type}");
+ sb.Append(" public static object ExecuteScalar(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" object val = cmd.ExecuteScalar();");
+ sb.Append(" cmd.Parameters.Clear();");
+ sb.Append(" return val;");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// add parameter array to the cache");
+ sb.Append(" /// ");
+ sb.Append(" /// Key to the parameter cache");
+ sb.Append(" /// an array of SqlParamters to be cached");
+ sb.Append(" public static void CacheParameters(string cacheKey, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" parmCache[cacheKey] = commandParameters;");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Retrieve cached parameters");
+ sb.Append(" /// ");
+ sb.Append(" /// key used to lookup parameters");
+ sb.Append(" /// Cached SqlParamters array");
+ sb.Append(" public static SqlParameter[] GetCachedParameters(string cacheKey)");
+ sb.Append(" {");
+ sb.Append(" SqlParameter[] cachedParms = (SqlParameter[])parmCache[cacheKey];");
+ sb.Append(" if (cachedParms == null)");
+ sb.Append(" return null;");
+ sb.Append(" SqlParameter[] clonedParms = new SqlParameter[cachedParms.Length];");
+ sb.Append(" for (int i = 0, j = cachedParms.Length; i < j; i++)");
+ sb.Append(" clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();");
+ sb.Append(" return clonedParms;");
+ sb.Append(" }");
+ sb.Append("");
+ sb.Append(" /// ");
+ sb.Append(" /// Prepare a command for execution");
+ sb.Append(" /// ");
+ sb.Append(" /// SqlCommand object");
+ sb.Append(" /// SqlConnection object");
+ sb.Append(" /// SqlTransaction object");
+ sb.Append(" /// Cmd type e.g. stored procedure or text");
+ sb.Append(" /// Command text, e.g. Select * from Products");
+ sb.Append(" /// SqlParameters to use in the command");
+ sb.Append(" private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)");
+ sb.Append(" {");
+ sb.Append(" if (conn.State != ConnectionState.Open)");
+ sb.Append(" conn.Open();");
+ sb.Append(" cmd.Connection = conn;");
+ sb.Append(" cmd.CommandText = cmdText;");
+ sb.Append(" if (trans != null)");
+ sb.Append(" cmd.Transaction = trans;");
+ sb.Append(" cmd.CommandType = cmdType;");
+ sb.Append(" if (cmdParms != null)");
+ sb.Append(" {");
+ //sw.WriteLine(" foreach (SqlParameter parm in cmdParms)");
+ //sw.WriteLine(" cmd.Parameters.Add(parm);");
+ sb.Append(" cmd.Parameters.AddRange(cmdParms);");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" public static SqlDataReader ExecuteReader(string sql)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" SqlConnection connection = new SqlConnection(ConnectionString);");
+ sb.Append(" connection.Open();");
+ sb.Append(" cmd.CommandText = sql;");
+ sb.Append(" cmd.Connection = connection;");
+ sb.Append(" return cmd.ExecuteReader(CommandBehavior.CloseConnection);");
+ sb.Append(" }");
+ sb.Append(" public static int ExecuteNonQuery(string sql)");
+ sb.Append(" {");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" using (SqlConnection connection = new SqlConnection(ConnectionString))");
+ sb.Append(" {");
+ sb.Append(" connection.Open();");
+ sb.Append(" cmd.CommandText = sql;");
+ sb.Append(" cmd.Connection = connection;");
+ sb.Append(" int i = cmd.ExecuteNonQuery();");
+ sb.Append(" connection.Close();");
+ sb.Append(" return i;");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" public static DataSet ExecuteDataSet(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlConnection connection = new SqlConnection(connectionString);");
+ sb.Append(" try");
+ sb.Append(" {");
+ sb.Append(" connection.Open();");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sb.Append(" DataSet dt = new DataSet();");
+ sb.Append(" adp.Fill(dt);");
+ sb.Append(" connection.Close();");
+ sb.Append(" return dt;");
+ sb.Append(" }");
+ sb.Append(" catch (Exception ex)");
+ sb.Append(" {");
+ sb.Append(" throw (ex);");
+ sb.Append(" }");
+ sb.Append(" finally");
+ sb.Append(" {");
+ sb.Append(" if (connection.State != ConnectionState.Closed)");
+ sb.Append(" {");
+ sb.Append(" connection.Close();");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" public static DataSet ExecuteDataSet(string sql)");
+ sb.Append(" {");
+ sb.Append(" SqlConnection connection = new SqlConnection(ConnectionString);");
+ sb.Append(" try");
+ sb.Append(" {");
+ sb.Append(" connection.Open();");
+ sb.Append(" SqlCommand cmd = new SqlCommand(sql, connection);");
+ sb.Append(" cmd.CommandType = CommandType.Text;");
+ sb.Append(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sb.Append(" DataSet dt = new DataSet();");
+ sb.Append(" adp.Fill(dt);");
+ sb.Append(" connection.Close();");
+ sb.Append(" return dt;");
+ sb.Append(" }");
+ sb.Append(" catch (Exception ex)");
+ sb.Append(" {");
+ sb.Append(" throw (ex);");
+ sb.Append(" }");
+ sb.Append(" finally");
+ sb.Append(" {");
+ sb.Append(" if (connection.State != ConnectionState.Closed)");
+ sb.Append(" {");
+ sb.Append(" connection.Close();");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" /// Get the DataTable object by the query");
+ sb.Append(" public static DataTable ExecuteGetDataTableFromTableName(string sql)");
+ sb.Append(" {");
+ sb.Append(" DataTable dt = new DataTable();");
+ sb.Append(" using (SqlConnection conn = new SqlConnection(ConnectionString))");
+ sb.Append(" {");
+ sb.Append(" SqlCommand scCommand = conn.CreateCommand();");
+ sb.Append(" scCommand.CommandText = sql;");
+ sb.Append(" SqlDataAdapter sdaAdapter = new SqlDataAdapter(scCommand);");
+ sb.Append(" sdaAdapter.Fill(dt);");
+ sb.Append(" }");
+ sb.Append(" return dt;");
+ sb.Append(" }");
+ sb.Append(" public static DataTable ExecuteDataTable(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)");
+ sb.Append(" {");
+ sb.Append(" SqlConnection connection = new SqlConnection(connectionString);");
+ sb.Append(" try");
+ sb.Append(" {");
+ sb.Append(" connection.Open();");
+ sb.Append(" SqlCommand cmd = new SqlCommand();");
+ sb.Append(" PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);");
+ sb.Append(" SqlDataAdapter adp = new SqlDataAdapter(cmd);");
+ sb.Append(" DataTable dt = new DataTable();");
+ sb.Append(" adp.Fill(dt);");
+ sb.Append(" connection.Close();");
+ sb.Append(" return dt;");
+ sb.Append(" }");
+ sb.Append(" catch (Exception ex)");
+ sb.Append(" {");
+ sb.Append(" throw (ex);");
+ sb.Append(" }");
+ sb.Append(" finally");
+ sb.Append(" {");
+ sb.Append(" if (connection.State != ConnectionState.Closed)");
+ sb.Append(" {");
+ sb.Append(" connection.Close();");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append(" }");
+ sb.Append("}");
+ return sb.ToString();
+ }
+ #endregion 创建辅助类
+ public class BaseTableADODALClass {
+ public const string strtableADOInsert = @"
+ public static bool {0}Insert(Entity.{0} obj)
+ {{
+ string sql = ""{1}"";
+ {2}
+ if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;
+ }}
+";
+
+ public const string strtableADODeleteFromPrimaryKey = @"
+ public static bool {0}DeleteFromPrimaryKey({1} {2})
+ {{
+ string sql = ""{3}"";
+ sql+="" where {2}=@{2}"";
+ {4}
+ if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;
+ }}
+";
+ public const string strtableADODelete = @"
+ public static bool {0}Delete(string deleteWhere)
+ {{
+ string sql = ""{1}"";
+ if(!String.IsNullOrEmpty(deleteWhere.Trim()))
+ {{
+ sql+="" where ""+deleteWhere;
+ }} else{{
+ return false;
+ }}
+ if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, null) > 0)
+ return true;
+ else
+ return false;
+ }}
+";
+ public const string strtableADOSelectFromPrimaryKey = @"
+ public static DataTable {0}SelectFromPrimaryKey({1} {2})
+ {{
+ string sql = ""{3}"";
+ sql+="" where {2}=@{2}"";
+ {4}
+ return SqlHelper.ExecuteDataTable(SqlHelper.ConnectionString, CommandType.Text, sql, spms);
+ }}
+";
+ public const string strtableADOSelectFromPrimaryKey_bool = @"
+ public static bool {0}SelectFromPrimaryKey_bool({1} {2})
+ {{
+ string sql = ""{3}"";
+ sql+="" where {2}=@{2}"";
+ {4}
+ IDataReader dr= SqlHelper.ExecuteReader(SqlHelper.ConnectionString, CommandType.Text, sql, spms);
+ if (dr.Read())
+ return true;
+ else
+ return false;
+ }}
+";
+ public const string strtableADOSelect = @"
+ public static DataTable {0}Select(string selectWhere)
+ {{
+ string sql = ""{1}"";
+ if(!String.IsNullOrEmpty(selectWhere.Trim()))
+ {{
+ sql+="" where ""+selectWhere;
+ }}
+ return SqlHelper.ExecuteGetDataTableFromTableName(sql);
+ }}
+";
+ public const string strtableADOUpdateFromPrimaryKey = @"
+ public static bool {0}UpdateFromPrimaryKey(Entity.{0} obj ,{1} {2})
+ {{
+ string sql = ""{3}"";
+ sql+="" where {2}=@{2}"";
+ {4}
+ if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;
+ }}
+";
+ public const string strtableADOUpdate = @"
+ public static bool {0}Update(Entity.{0} obj , string updateWhere)
+ {{
+ string sql = ""{1}"";
+ if(!String.IsNullOrEmpty(updateWhere.Trim()))
+ {{
+ sql+="" where ""+updateWhere;
+ }} else{{
+ return false;
+ }}
+ {2}
+ if (SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionString, CommandType.Text, sql, spms) > 0)
+ return true;
+ else
+ return false;
+ }}
+";
+ }
+ public class BaseTableADOBLLClass
+ {
+ public const string strtableADOInsert = @"
+ public static bool {0}Insert(Entity.{0} obj)
+ {{
+ return ADODAL.{0}Insert(obj);
+ }}
+";
+ public const string strtableADOInsertFromPrimaryKey = @"
+ public static bool {0}InsertFromPrimaryKey(Entity.{0} obj,{1} {2})
+ {{
+ if(ADOBLL.{0}SelectFromPrimaryKey_bool({2}))
+ return ADODAL.{0}Insert(obj);
+ else
+ return false;
+ }}
+";
+
+ public const string strtableADODelete = @"
+ public static bool {0}Delete(string deleteWhere)
+ {{
+ return ADODAL.{0}Delete(deleteWhere);
+ }}
+";
+ public const string strtableADODeleteFromPrimaryKey = @"
+ public static bool {0}DeleteFromPrimaryKey({1} {2})
+ {{
+ return ADODAL.{0}DeleteFromPrimaryKey({2});
+ }}
+";
+ public const string strtableADOSelect = @"
+ public static DataTable {0}Select(string selectWhere)
+ {{
+ return ADODAL.{0}Select(selectWhere);
+ }}
+";
+ public const string strtableADOSelectFromPrimaryKey = @"
+ public static bool {0}SelectFromPrimaryKey({1} {2})
+ {{
+ return ADODAL.{0}SelectFromPrimaryKey({2});
+ }}
+";
+ public const string strtableADOSelectFromPrimaryKey_bool = @"
+ public static bool {0}SelectFromPrimaryKey_bool({1} {2})
+ {{
+ return ADODAL.{0}SelectFromPrimaryKey_bool({2});
+ }}
+";
+ public const string strtableADOSelectALL = @"
+ public static DataTable {0}SelectALL(string selectWhere)
+ {{
+ return ADODAL.{0}Select("""");
+ }}
+";
+ public const string strtableADOUpdateFromPrimaryKey = @"
+ public static bool {0}UpdateFromPrimaryKey(Entity.Table_1 obj ,{1} {2})
+ {{
+ return ADODAL.{0}UpdateFromPrimaryKey(obj , {2});
+ }}
+";
+ public const string strtableADOUpdate = @"
+ public static bool {0}Update(Entity.{0} obj , string updateWhere)
+ {{
+ return ADODAL.{0}Update(obj , updateWhere);
+ }}
+";
+ }
+ }
+ public class BaseTableENtityClass {
+ public const string strtable =
+ @"
+/*************EntityClass***************/
+ public class {0}
+ {{
+{1}
+ }}
+/***************Entity*************/
+{2}/***********Entity*****************/
+{3}
+/*************JSON***************/
+{4}
+/****************************/";
+ }
+ public class BaseTableSQLClass {
+ public const string strtablesql =
+ @"
+/************Select****************/
+{0}
+/************Insert****************/
+{1}
+/************Update****************/
+{2}
+/************Delete****************/
+{3}
+/****************************/
+";
+
+ }
+ public class BaseTableAdoClass
+ {
+ public const string strtableado =
+ @"/************SqlParameter****************/
+{0}
+/****************************/
+";
+ }
+ public class BaseTableLinqClass
+ {
+ public const string strtablelinq =
+ @"/************add****************/
+{0}
+/****************************/
+";
+ public const string strtablelinqadd = @"
+/************linqAdd****************/
+public static int {0}Add(Entity.{1} obj)
+{{
+ int rs = 0;//0 >>add failure
+ //1 >>Has been in existence can't repeat to add
+ //2 >>add success
+ using (DataObjectDataContext dt = new DataObjectDataContext())
+ {{
+ var query = from s in dt.{2}
+ where (your conditions)
+ select s ;
+ if (query.ToList().Count > 0)
+ {{
+ rs = 1;
+ }}
+ else
+ {{ {3}
+ dt.{4}.InsertOnSubmit(newojb);
+ dt.SubmitChanges();
+ rs = 2;
+ }}
+ }}
+ return rs;
+}}
+/****************************/";
+ public const string strtablelinqdelete = @"
+/************linqDelete****************/
+public static int {0}Delete(string objid)
+{{
+ int rs = 0; // 0 failure
+ //1 Delete the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var query = db.{1}.SingleOrDefault<{2}>(s => s.id == System.Guid.Parse(objid));
+ if (query == null)
+ {{
+ rs = 1;
+ return rs;
+ }}
+ db.{3}.DeleteOnSubmit(query);
+ db.SubmitChanges();
+ rs=2;
+ }}
+ return rs;
+}}
+/****************************/";
+ public const string strtablelinqupdate = @"
+/************linqUpdate****************/
+ public static int {0}Update(Entity.{1} obj)
+ {{
+ int rs = 0;// 0 failure
+ //1 update the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var query = db.{2}.SingleOrDefault<{3}>(s => s.id == System.Guid.Parse(obj.id));
+ if (query == null)
+ {{
+ rs = 1;
+ return rs;
+ }}{4}
+ db.SubmitChanges();
+ rs = 2;
+
+ }}
+ return rs;
+ }}
+/****************************/";
+ public const string strtablelinqselect = @"//
+/************linqselect****************/
+public static List getALLuserlist()
+{{
+ List rslist=new List();
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ var querylist = from s in db.{3} orderby s.id select s ;
+ if(querylist==null)
+ {{
+ return rslist;
+ }}
+ foreach (var obj in querylist)
+ {{
+ Entity.{4} query=new Entity.{5} ();{6}
+ rslist.Add(query);
+ }}
+ }}
+ return rslist;
+ }}
+/****************************/";
+ public const string strtablelinqselectToIEnumerable = @"//
+/************linqselectToIEnumerable****************/
+public static IEnumerable getALL{1}ToIEnumerable(?Expression> expression,int isall)
+{{
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {{
+ if (isall == 1)
+ {{
+ return db.{3}.Rows.Cast();
+ }}
+ else
+ {{
+ return db.{5}.Rows.Cast().AsQueryable().Where(expression);
+ }}
+ }}
+}}
+/****************************/";
+
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Column.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Column.cs
new file mode 100644
index 0000000..54beec7
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Column.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace CsharpOSMeteorCodeGenerator.Model
+{
+ public class Column
+ {
+ #region Attributes
+
+ private Table table;
+ private string name;
+ private bool nullable;
+ private string type;
+ private int? characterMaximumLength;
+ private bool primaryKey;
+ private bool foreignKey;
+
+ #endregion
+
+ #region Properties
+
+ public Table Table
+ {
+ get { return table; }
+ set { table = value; }
+ }
+
+ public string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public bool Nullable
+ {
+ get { return nullable; }
+ set { nullable = value; }
+ }
+
+ public int? CharacterMaximumLength
+ {
+ get { return characterMaximumLength; }
+ set { characterMaximumLength = value; }
+ }
+
+ public bool PrimaryKey
+ {
+ get { return primaryKey; }
+ set { primaryKey = value; }
+ }
+
+ public bool ForeignKey
+ {
+ get { return foreignKey; }
+ set { foreignKey = value; }
+ }
+
+ public string Type
+ {
+ get { return type; }
+ set { type = value; }
+ }
+
+ #endregion
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/EModel.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/EModel.cs
new file mode 100644
index 0000000..41fb505
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/EModel.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Data.SqlClient;
+using System.Data;
+using System.Reflection;
+
+namespace CsharpOSMeteorCodeGenerator.Model
+{
+ public class EModel
+ {
+ public static SqlConnectionStringBuilder connBuilder;
+ //use pubs select top 0 * from KFUSER
+ ///
+ /// 通过查询语句获得DataTable 对象
+ ///
+ /// sql查询语句
+ ///
+ public static DataTable ExecuteGetDataTableFromTableName(string sql)
+ {
+ //DataSet dsSet = new DataSet();
+ DataTable dt = new DataTable();
+ using (SqlConnection conn = new SqlConnection(connBuilder.ConnectionString))
+ {
+ //建立Command
+ SqlCommand scCommand = conn.CreateCommand();
+ //scCommand.CommandText = "select * from " + strTableName;
+ scCommand.CommandText = sql;
+ //建立Adapter
+ SqlDataAdapter sdaAdapter = new SqlDataAdapter(scCommand);
+ sdaAdapter.Fill(dt);
+ }
+ return dt;
+ }
+
+
+
+ public static DataTable getDatable(string dbname,string tablename)
+ {
+ string sql = string.Format("use {0} select top 0 * from [{1}].[dbo].[{2}]", dbname, dbname, tablename);
+ return ExecuteGetDataTableFromTableName(sql);
+ }
+ }
+ ///
+ /// 将DataTable转换成泛型集合IList<>助手类
+ ///
+ public class ConvertHelper
+ {
+ ///
+ /// 单表查询结果转换成泛型集合
+ ///
+ /// 泛型集合类型
+ /// 查询结果DataTable
+ /// 以实体类为元素的泛型集合
+ public static IList convertToList(DataTable dt) where T : new()
+ {
+ // 定义集合
+ List ts = new List();
+
+ // 获得此模型的类型
+ Type type = typeof(T);
+ //定义一个临时变量
+ string tempName = string.Empty;
+ //遍历DataTable中所有的数据行
+ foreach (DataRow dr in dt.Rows)
+ {
+ T t = new T();
+ // 获得此模型的公共属性
+ PropertyInfo[] propertys = t.GetType().GetProperties();
+ //遍历该对象的所有属性
+ foreach (PropertyInfo pi in propertys)
+ {
+ tempName = pi.Name;//将属性名称赋值给临时变量
+ //检查DataTable是否包含此列(列名==对象的属性名)
+ if (dt.Columns.Contains(tempName))
+ {
+ // 判断此属性是否有Setter
+ if (!pi.CanWrite) continue;//该属性不可写,直接跳出
+ //取值
+ object value = dr[tempName];
+ //如果非空,则赋给对象的属性
+ if (value != DBNull.Value)
+ pi.SetValue(t, value, null);
+ }
+ }
+ //对象添加到泛型集合中
+ ts.Add(t);
+ }
+
+ return ts;
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/OSMyNode.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/OSMyNode.cs
new file mode 100644
index 0000000..39ce28d
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/OSMyNode.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace CsharpOSMeteorCodeGenerator.Model
+{
+ public class OSMyNode : TreeNode
+ {
+ private object value;
+ public object Value
+ {
+ get { return this.value; }
+ set { this.value = value; }
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Table.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Table.cs
new file mode 100644
index 0000000..004e879
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Model/Table.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace CsharpOSMeteorCodeGenerator.Model
+{
+ public class Table
+ {
+ #region Attributes
+
+ private string catalog;
+ private string schema;
+ private string name;
+ private List columns;
+
+ #endregion
+
+ #region Constructor
+
+ public Table()
+ {
+ columns = new List();
+ }
+
+ #endregion
+
+ #region Properties
+
+ public string Catalog
+ {
+ get { return catalog; }
+ set { catalog = value; }
+ }
+
+ public string Schema
+ {
+ get { return schema; }
+ set { schema = value; }
+ }
+
+ public string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public List Columns
+ {
+ get { return columns; }
+
+ }
+
+ public void AddColumn(Column column)
+ {
+ columns.Add(column);
+ }
+
+ #endregion
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Program.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Program.cs
new file mode 100644
index 0000000..abc1991
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Program.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ static class Program
+ {
+ ///
+ /// 应用程序的主入口点。
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new F_login());
+ //Application.Run(new Form1Test());
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/AssemblyInfo.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6de2f73
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("CsharpOSMeteorCodeGenerator")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("微软中国")]
+[assembly: AssemblyProduct("CsharpOSMeteorCodeGenerator")]
+[assembly: AssemblyCopyright("Copyright © 微软中国 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("f608282d-db92-4779-88d9-e1cb7ab54a7e")]
+
+// 程序集的版本信息由下面四个值组成:
+//
+// 主版本
+// 次版本
+// 内部版本号
+// 修订号
+//
+// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..b7025fd
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本: 4.0.30319.1008
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将丢失。
+//
+//------------------------------------------------------------------------------
+
+namespace CsharpOSMeteorCodeGenerator.Properties
+{
+
+
+ ///
+ /// 一个强类型的资源类,用于查找本地化的字符串等。
+ ///
+ // 此类是由 StronglyTypedResourceBuilder
+ // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+ // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+ // (以 /str 作为命令选项),或重新生成 VS 项目。
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// 返回此类使用的、缓存的 ResourceManager 实例。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CsharpOSMeteorCodeGenerator.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 为所有资源查找重写当前线程的 CurrentUICulture 属性,
+ /// 方法是使用此强类型资源类。
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..6aeff11
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.1008
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace CsharpOSMeteorCodeGenerator.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.settings b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.Designer.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.Designer.cs
new file mode 100644
index 0000000..1df52e9
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.Designer.cs
@@ -0,0 +1,235 @@
+namespace CsharpOSMeteorCodeGenerator
+{
+ partial class about
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(about));
+ this.linkLabel1 = new System.Windows.Forms.LinkLabel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.label3 = new System.Windows.Forms.Label();
+ this.label4 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.linkLabel2 = new System.Windows.Forms.LinkLabel();
+ this.label8 = new System.Windows.Forms.Label();
+ this.pictureBox1 = new System.Windows.Forms.PictureBox();
+ this.pictureBox2 = new System.Windows.Forms.PictureBox();
+ this.pictureBox3 = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
+ this.SuspendLayout();
+ //
+ // linkLabel1
+ //
+ this.linkLabel1.AutoSize = true;
+ this.linkLabel1.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.linkLabel1.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.linkLabel1.Location = new System.Drawing.Point(178, 210);
+ this.linkLabel1.Name = "linkLabel1";
+ this.linkLabel1.Size = new System.Drawing.Size(431, 14);
+ this.linkLabel1.TabIndex = 1;
+ this.linkLabel1.TabStop = true;
+ this.linkLabel1.Text = "http://blog.csdn.net/osmeteor/article/details/9082353";
+ this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.label1.Location = new System.Drawing.Point(13, 210);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(159, 14);
+ this.label1.TabIndex = 2;
+ this.label1.Text = "The author details:";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.label2.Location = new System.Drawing.Point(11, 46);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(54, 14);
+ this.label2.TabIndex = 2;
+ this.label2.Text = "sina:";
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.label3.Location = new System.Drawing.Point(13, 99);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(38, 14);
+ this.label3.TabIndex = 2;
+ this.label3.Text = "QQ:";
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.label4.Location = new System.Drawing.Point(12, 140);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(86, 14);
+ this.label4.TabIndex = 2;
+ this.label4.Text = "QQ Group:";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.label5.Location = new System.Drawing.Point(12, 174);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(62, 14);
+ this.label5.TabIndex = 2;
+ this.label5.Text = "Emali:";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(104, 101);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(59, 12);
+ this.label6.TabIndex = 3;
+ this.label6.Text = "406662428";
+ this.label6.Click += new System.EventHandler(this.pictureBox2_Click);
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(104, 176);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(131, 12);
+ this.label7.TabIndex = 4;
+ this.label7.Text = "meteorsoftware@qq.com";
+ //
+ // linkLabel2
+ //
+ this.linkLabel2.AutoSize = true;
+ this.linkLabel2.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Bold);
+ this.linkLabel2.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
+ this.linkLabel2.Location = new System.Drawing.Point(126, 46);
+ this.linkLabel2.Name = "linkLabel2";
+ this.linkLabel2.Size = new System.Drawing.Size(263, 14);
+ this.linkLabel2.TabIndex = 1;
+ this.linkLabel2.TabStop = true;
+ this.linkLabel2.Text = "http://weibo.com/systembreakdown";
+ this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked_1);
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Location = new System.Drawing.Point(200, 142);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(59, 12);
+ this.label8.TabIndex = 5;
+ this.label8.Text = "185748894";
+ this.label8.Click += new System.EventHandler(this.pictureBox1_Click);
+ //
+ // pictureBox1
+ //
+ this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage")));
+ this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.pictureBox1.Location = new System.Drawing.Point(104, 132);
+ this.pictureBox1.Name = "pictureBox1";
+ this.pictureBox1.Size = new System.Drawing.Size(90, 22);
+ this.pictureBox1.TabIndex = 6;
+ this.pictureBox1.TabStop = false;
+ this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click);
+ //
+ // pictureBox2
+ //
+ this.pictureBox2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox2.BackgroundImage")));
+ this.pictureBox2.Location = new System.Drawing.Point(73, 88);
+ this.pictureBox2.Name = "pictureBox2";
+ this.pictureBox2.Size = new System.Drawing.Size(25, 25);
+ this.pictureBox2.TabIndex = 7;
+ this.pictureBox2.TabStop = false;
+ this.pictureBox2.Click += new System.EventHandler(this.pictureBox2_Click);
+ //
+ // pictureBox3
+ //
+ this.pictureBox3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.BackgroundImage")));
+ this.pictureBox3.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox3.InitialImage")));
+ this.pictureBox3.Location = new System.Drawing.Point(67, 20);
+ this.pictureBox3.Name = "pictureBox3";
+ this.pictureBox3.Size = new System.Drawing.Size(53, 53);
+ this.pictureBox3.TabIndex = 8;
+ this.pictureBox3.TabStop = false;
+ //
+ // about
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(620, 249);
+ this.Controls.Add(this.pictureBox2);
+ this.Controls.Add(this.pictureBox1);
+ this.Controls.Add(this.label8);
+ this.Controls.Add(this.label7);
+ this.Controls.Add(this.label6);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.label4);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.linkLabel2);
+ this.Controls.Add(this.linkLabel1);
+ this.Controls.Add(this.pictureBox3);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "about";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "about";
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.LinkLabel linkLabel1;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.LinkLabel linkLabel2;
+ private System.Windows.Forms.Label label8;
+ private System.Windows.Forms.PictureBox pictureBox1;
+ private System.Windows.Forms.PictureBox pictureBox2;
+ private System.Windows.Forms.PictureBox pictureBox3;
+
+ }
+}
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.cs
new file mode 100644
index 0000000..db6b53e
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace CsharpOSMeteorCodeGenerator
+{
+ public partial class about : Form
+ {
+ public about()
+ {
+ InitializeComponent();
+ }
+
+ private void label1_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(this.linkLabel1.Text);
+ System.Diagnostics.Process.Start(startInfo);
+ }
+
+ private void label6_Click(object sender, EventArgs e)
+ {
+ //http://wpa.qq.com/msgrd?v=3&uin=406662428&site=qq&menu=yes
+ }
+
+ private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ string url = this.linkLabel2.Text;
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(url);
+ System.Diagnostics.Process.Start(startInfo);
+ }
+
+ private void pictureBox2_Click(object sender, EventArgs e)
+ {
+ string url = @"http://wpa.qq.com/msgrd?v=3&uin=406662428&site=qq&menu=yes";
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(url);
+ System.Diagnostics.Process.Start(startInfo);
+ }
+
+ private void linkLabel2_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ string url = @"http://weibo.com/systembreakdown";
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(url);
+ System.Diagnostics.Process.Start(startInfo);
+ }
+
+ private void pictureBox1_Click(object sender, EventArgs e)
+ {
+ string url = @"http://shang.qq.com/wpa/qunwpa?idkey=ac8d7a501d7ae846eb4c47d87128097fdedd6c2db54b00c49c7b850875c9352a";
+ System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(url);
+ System.Diagnostics.Process.Start(startInfo);
+ }
+ }
+}
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.resx b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.resx
new file mode 100644
index 0000000..95ef656
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/about.resx
@@ -0,0 +1,408 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ AAAASUVORK5CYII=
+
+
+
+
+ /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
+ AQICAQECAQEBAgICAgICAgICAQICAgICAgICAgL/2wBDAQEBAQEBAQEBAQECAQEBAgICAgICAgICAgIC
+ AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL/wAARCAAZABkDASIAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
+ 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+yT4w/GLxF4P8QfEO/u/HU3gvwd4AiRryay0/wubW00rTvBei
+ eM9c1/Wr3xF4f1GWSRI9cuFIg+zwxW2lxnynlaWRv5+9V/4L9fGWXxH4f1fwR+z7478WfAnxP8NPih8b
+ dC+It/8AtBfsl+E/iZrfwZ+DF/4ptfiP4+0P9n7U/Ab6vqC29j8P/ibqGl6W99Bq3iLTvg548v8AQbPU
+ LLwH4vuNG+ov+C1vx1b4P/BX47eFbTwXe/EDW/2jfH2l/sx6J4ZsXvUecfFf4CeH08UahNJYQs8NvZeA
+ dH8X3hdngiVrJWluIkBavzm/Zn/Yw/b/APG/wC8R/s1fD3wv8DbHwF8Dpfjl+yVrfinxr4T8I3F7pdhr
+ Gq+D774ueDLXWE8Ug+IfCGraj4V+HeoalHe+FprXxBJ4P0e512PWbuxiePLxY8RsZ4eYXgfLeGPDlcaZ
+ vn2Gw9StGlSwydOm6MHKrUnPD4ibtJ80/cTcG3Gbkmo+r4H+BuN8X8L4l8VZv4oYLg/JOE83eCcMyznE
+ 5fyUq1XFKOIoRVWjRq04So/Vo0qdWVX2rhGOGnFuUf6Jf2fP2rbr43aB8Kfih4G+JN941+HvxIbwff6S
+ 1/pngoWeo6P4s1nTtBniuG8P+GbO4sdWtJdSm3Il0RBe6Y0M6zxiSM/pVX8nv/BHHxL4q+H1l4u/Yl8b
+ eBrjwlrv7F37RWi/DXTtdjm1690L4j+E9d/aL1+PTvG3hvVPEGlWcmr6RceJfDnjFILiKJY/s8NvC8UF
+ 1Dcwp/WFX2/FMsDisBwxm2CwFPLlm2EjVnThTp0+WbjTcoSVK8HKE5Sg5RlNO3uzlHlZ+YcJ4XMcozzj
+ rhvH55LiGPDuZVMPRxftq1enXoxnVjSxFCWIjTrKjiKUKdaEalKjUSn+8o0qrnBfll+1R8LfHXi7xX8T
+ dKsPD/iQWPi3VvDuraXq1j4F8WeONC1PRY/CHgXQ9V06/TwYnm28dxceF9f0+8t2vNOv1tb4XFtIizW8
+ 58rtR+2jp/g288HxePfGdzbSXCpp8t1+zP8AFGcadopiuoZtH85wb+9+SW1WG6l1A3ES2mGeR5DIP2ho
+ rw8fV4bzjFYXMc44fr4nNMNlcMo9th84zTAxeDp8zjajg8RSpRxEZTnOni4x+t0ZzboV6aUVH0MFk3EO
+ TxzLDZHxRDAZfmWZVM0lSq5TlmNksVVlFyXtsXQqVXRahGEsO2sPUhG1WlUcpyn+MXwJ+EfxV0Hxd4ds
+ tU0fxzrkt98WNE8YS6hqfw48deEtL0TSl8f6N458QJda340s/wDSIIYdO1yZJr/U7vUrye9jtka4neFD
+ +ztFFZ4rGYL+y8gyLKsueWZNw1hoYTCUpYnEYupCjTjCFOEsRip1K0406dOnCCqTnKMY252uVR6snybE
+ 4DH8QZxmOZf2rm/E2Kli8VWjhsPhITrScpTmsPhoQownUqTnOo4RjGUpX5FLmlL/2Q==
+
+
+
+
+ /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYG
+ BwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoK
+ CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAAyADIDAREAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq
+ 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9FfH3ijxLrfieL4QfDa+az1Se1W61nWxbhxo1k5dVkQOCklxK
+ 0bpGpyq7XkYMECSf4ycP5Rl2X5XLPs1jz0k3GnTv/FqLdO1moQ3k+ukVq7r9iqVJVJezho+rET9lv4Dy
+ 6fNZ+JfhppviCS6R0vL7xLB/aNxc7/v7pLje2G7gYXgAAAADCv4kcX1Kqlh8S6MI/DCn7kIpbJKNr287
+ vvqSqFO1mijcfspfDzRDLqfwk1bW/Ad+VPlSeGNTkjtFbaVUtYyF7SQDj70WeBgiuzDeJecYhqnnNOnj
+ Ke1qkFzWvraokpp+fMRPDwveGjJ/2fvilr/ihdV+FnxDWYeMvBbw22uzvaeTHqkTqfI1KBeginCOcD7k
+ iSJzsBOHHHDmEwKo5vl1lg8UnKCvd02vipy3d4XtvqrPqKhWcr05bo9GmEgYgbevJPFfn0djqg7IjaIM
+ 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
+ LxbokC2mppGduUF1EFlCnJ43Y5Nf1F9HrF4rNoTwOOqSq0LL93NuUP8AwGV4/geJmaUK3NHR2Pniy/aZ
+ /aQl/Y01PxFL+0D43bUE00FL5vFd4ZlO1+Q/mbh+dfp3+qXCq4qjFYCha/8Az6p9/wDCcMMRXdF3m/vZ
+ 9q/sSadp+i/s/fCzxXo1jDaap4ls7afxHqVrEI7jVZSxy9zIuGnY56uSa/GvEJvE55mOFre9TpO0IvWM
+ FZfDF6R+SR6+XpewUup9BfFiaWK43Ryspj0W8kQq2Nr74V3D0O1mGfRiO5r8k4OhH6rN23qRXySk7el0
+ nburnrVty34/sLGP4favZJZRLDDpcvkxCMBY9qMV2joMEDGOmBXl8OYjES4qpSlNtynq7vXXr3OtpKKJ
+ /BMEN14M0i6uoVklk0y3aSSRQWZjGpJJPUk9668yxOJp5jWjGbSU5JJN2Suznsj/2Q==
+
+
+
+
+ /9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYG
+ BwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoK
+ CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAAyADIDAREAAhEBAxEB/8QA
+ HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+ MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW
+ V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
+ x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF
+ BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+ YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
+ 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
+ /P8E5Pv/HqS+/xXh9f8S3vL/IsHe/zCUt/80j7T/LoSl/x6/3P8Y0uz/JrPY/xzQ7P8hxub/Hb/b/zR5
+ qP8Zu+L/Bdv5/wHQ9v8D0/n/A9b4/wDa+/8C2vr/Hcvo/ybG4P8mzOT/JcHa/x3a8f8cprz/AuT5/wLj
+ +f8D4/r/A+P7/wPj+v8dlKz/KNzz/zKfvP83i6//M5e2/yK20/8X2vT/LbbU/yzA3v8V2Pb/Ctn4/yDC
+ 5f8V1vP/JajJ/yuOvP8byuv/BNP5/wTU+f8E1vn/ANr7/wPb+f8Q1+7/I8fi/yjE3f8uvtn/EOL2/yKZ
+ rv8G4/n/A+X6/wPl+P8N4/b/IsTW/xxOYf8WTFz/FTtR/yVSaP8tyN3/HdLo/yTA3P8Z3Pb/JcTg/x7G
+ 4/8I3Pr/DNv4/yK/4f8W2/L/Jomr/yqbw/8D1fn/A9b6/wPY+v8A2fr/ANr7/wzY8/8jyOH/IsDa/zSz
+ 0P8L4fn/KZSs/wXj+P8J5fj/G9fr/yZ4i/8ZVmv/HrrQ/xTe8/8V4vX/HLbJ/yFuhP8lrsP/CuH4/wrf
+ +P8hyeP/Jcfj/xnO6v8a0vH/J7LW/ya92/8qwdz/LZGw/wHY+f8B2vn/Ad35/wDb/P8A2vv/C932/yTA
+ 2/8lyOD/KrnT/wni+v8sjqj/C+H3/yLL4P8xfJP/Ho2g/xPi9P8F5/n/BOL6/wTj+v8E4/v/FeD0/x94
+ jP8d0OL/MKTG/xfe9f8ow9v/HtHp/yHL5P8lxuL/NbXQ/yuiv/8ls8//A9f5/wPa+v8A2/j/ANv5/wLc
+ +v8L3fb/J8rf/ybH3v8ts8z/COP6/ymFm/8Y1Oz/LZKu/yagtP8J5ff/AeT7/wPn+f8C5vv/Beb6/wTl
+ +/8E4/r/G7HG/zqZsv82ssv/Isbe/ym71v8ext3/IsXe/yyJpv8wcZf/LH+h/yOuz/8B2fv/ANr6/wDc
+ +P8A3Pr/A935/xLW7f8lxtz/KMnd/y6nvv8G5Pr/Ioui/yHM4P8nvNb/C+j5/wTo9/8C5vn/CuX3/w7j
+ 9/8J5vr/C+f5/wnn+P8brb3/KsLX/zykvf8sv9X/KMTe/yW10/8upsb/MJG2/y5skv81r9T/JZm//wDa
+ +/8A2vv/ANv7/wHd+f8F4Pn/Ftnw/yfI3v8lzN7/MZqz/wfm+/8imK7/H8/i/wXl+v8B6vr/A+v7/wPp
+ +f8ixdX/G1pu/xp4iP8kaH3/KZCi/y2kuf8qxNj/L6C5/yWwzv8vnMT/LLDR/y6tz/8xmr//LoGf/yeG
+ pf8mgJ3/ANr7/wDZ+v8A2/z/Adz5/wLf+P8ezeb/Kb7Y/yrJ3/8skqv/BuX6/yKds/8Z1uf/Auf8/wHo
+ +/8B6Pr/Cun3/yOTpP8nna7/PqvD/zasyf8vscr/NX2X/zNui/81j7P/MJvC/y+fxP8ul7j/Kpe1/xm0
+ zv8R4Pb/H8jl/y91o/8A2vv/ANv7/wHb/P8B3fn/BN/5/xrT6/8rv9n/MrvV/yaNpv8H5fr/J5Wr/xXZ
+ 6/8B5vv/AOf6/wbl+f8gu87/LGN0/zN5kf8siKD/Npy8/zC0zv8pwNj/L52//y+bw/8mhKv/JZa2/xbR
+ 5f8O4vf/CuP5/w3j+v8T3vb/KYi2/wDY+f8A2fr/ANr7/wHd+f8G3vb/Kb3Y/y261f80rcX/GKG7/wfj
+ +f8rg5r/DOL4/wjl+v8Q5Pj/Iaa5/zF9kP8fo7b/J5Sw/zSbuP8hv9f/DOH2/w/j9/8krcj/KI2w/xjL
+ 4f8L5Pj/DeX2/xfI3/8ZpsP/ILrV/wnj+P8smsH/ANn6/wDa+v8A2vv/Adz4/xDa8f8tsMz/LrbO/y2I
+ nv8U2fD/Hczg/yF8lv8L4/v/GdLk/xlqff8zkKf/N5Cq/zCds/8U4vT/D+H0/wnj9f8fvND/HpGt/xnD
+ 2v8L4vf/CeL5/xrO5f8gkbT/Ea7J/xHf8/8Z0ur/BuT5/yegwP8A2vv/ANv6/wDc+f8F3fr/Hsji/zCx
+ zv81qsX/I5Oo/w7k9/8db4T/ILXO/wTk+v8frsT/KpGl/zKetv8k2On/OpSt/y5/mP8Z1+v/CuT5/yWb
+ sf8O4vX/DuH6/xnH3/8gkrP/GrXS/w/e9v8C5fr/A+b7/xrP6/8G5vv/KKrI/wDa+P8B3fr/Ad77/wbd
+ 9/8ru9b/OarG/y6Rqf8Z3fD/IZCi/ydZcf8W2vP/BeD7/yCFm/8unbr/Hd/v/y6twv8wz+L/K6zC/yec
+ tP8O4fj/J8Td/w3i9f8gnb3/F7HT/w/c9/8I4fv/BeX7/wLl+/8D5/v/G9Ds/wXk+/8YsM7/Adr7/wDa
+ +/8A2/z/A936/yDA2/8xkqv/H9nw/yOYsP8ek6z/IbHI/xy0x/8Y2e3/IoKV/yCyx/8l2ef/MKO3/yXC
+ 2f8lvtH/J4ue/yGzzf8lxd//EN73/xu92/8F4vv/AOb7/wHn+v8B5fn/Aub7/wHm+v8Y0+v/CuP7/xXG
+ 4f8A2fr/ANr7/wDa+/8C2/r/CN31/xTb7/8fhpr/I7DE/wnf+P8Q3/f/KIae/xyGnf8Zvtb/D+Dz/zSQ
+ qv8yvtP/LKi//zSLov8kxNn/J5my/zKtyP8S4vj/HsDb/wTn+/8B6fv/Aej6/wLn+v8B5vv/Auj6/xLV
+ 6/8Q4Pb/Fd71/wDa+/8A2vv/ANr7/wHb+v8G2/n/GMTd/x7G3f8F4fj/AeT6/wPj+f8fqrz/I2N2/wri
+ 9/8F4/r/Gtfu/yORpv81ka//L3mV/xLg9f8Z3fD/OJav/xba7/8gwNn/Bun5/wLq+v8B6fn/Aun5/wLo
+ +/8B6Pj/D+P1/xPV6/8N4vf/ANr7/wDa+/8A2vv/ANz5/wHc+v8C4Pj/A+H3/wLg9/8A4/r/AuX6/xLj
+ 9v8sqsT/E+H4/wLm+f8E5fr/E97w/ySzzf87epn/H9Lm/wrm+P8oqL3/Hs/j/yLI3v8J6fj/Auv6/wHq
+ +P8C6/n/Auv7/wHq+v8G6Pj/G9Hq/wXl+v8A2vv/ANn6/wHa+/8B2/n/At/8/wTf+/8C4fj/AuL5/wHj
+ +v8B5Pn/CuP3/ytnfv8io7j/BeT6/wbn+/8T4PH/KMPX/zFwif8yt83/KMnc/yOitf8n0OL/G87i/wzp
+ 9/8E7vr/Auz4/wPu+/8B7Pr/Aer6/wLr+v8e0en/A+X6/wDZ+v8B2vv/ANn6/wDZ+v8B3vr/AN/7/wHh
+ +v8C5Pr/AuL7/wLl+v8U3vP/JGqC/y6Yrf8e2On/Duj3/wvn+P8a2On/KMbZ/y2JoP85qLr/LX6R/ybT
+ 4v8X2+3/Ednp/wPt+f8B7Pj/Ae35/wDr+f8B6vr/Aun5/xnU6v8J5fr/ANn6/wDY+v8A2Pr/ANn5/wDa
+ +v8C3Pv/At74/wLg9/8C4vv/A+b7/xnb8P8itc7/JKG0/0OTrP8wi5//HcbU/xDi8f8l0eL/K8XU/yuc
+ sP8gYXf/LcvZ/xbp9P8Wytz/BO76/wLt+f8B7Pj/AOv5/wHp+v8F6Pj/Etzv/xDd8P8B2vv/ANj6/wDX
+ +v8A2fr/Atr6/wTb+P8D3Pj/BOH2/wTj+/8C5vr/G7XI/x/S5/8fprv/SIWd/zN5j/8nZnn/Jdvr/zfA
+ 1f8xw9X/Oae5/yuFmP8uh5v/GeLt/yDD1/8H7vr/Bu75/wTt+P8E7Pn/Bun6/wvn+P8Z3PD/JLnS/wHa
+ +/8B2fv/Adn8/wDc+f8Pz+//J8bn/w3b9f8ixuD/Gdfw/wLl+f8ZoLP/GN7w/xrU5/8zcIb/J42j/xzg
+ 8v8kfIz/J3iL/yx5jf8si5//KZ+w/zuru/8c0Nv/Ir3P/xni7/8T2ur/ENDi/xbH2/8cvdb/Gb/Y/xrG
+ 3v8W1ej/ANn6/wLZ+f8E2fn/A9r5/wba+f8K2/j/Bd35/w3e9/8H4vn/AeX6/xnH3P8Zyt7/BeX5/xvY
+ 6f8N4/b/Bef5/wvo9/8K7Pn/D+vz/wvs9/8J7fj/LbTB/yXC0P8U2OX/FMXZ/xHV5/8R3ez/EOj1/w3q
+ +P8J6/j/B+r3/wbo9/8A2fr/Adn6/xPY9v8N0vD/Cdr4/wrc+P8F3vn/A+H6/wPk+/8C5vv/GNvy/xi/
+ 1P8C5vn/Auf5/wPo+P8D6fn/Aer3/wHs+P8B7vj/A+35/wjt+f8isL7/KKO4/xrf6/8W4O7/GNfm/xTO
+ 3P8Vw9b/Fr/V/xy91f8hts//H7DK/wDa+/8Q1vb/No+v/x7H5f8vtdT/MKjG/xjV7f8ayuD/CeL3/wHk
+ +/8Z4fX/HrPJ/wXm+f8B5vr/AOj3/wHq9/8B7fj/AOz4/wHt+f8B7fn/Cu76/yWovP8Y2ej/FKzD/xav
+ x/8TtMr/FM7f/xTf8P8P5vf/DOf3/wro+P8J6fn/Adv8/xfO8P88kLL/Lp/A/zGTsv8ysc7/KrXN/zy7
+ 0f8N5Pf/AuT6/w/j8/8qrMD/B+f5/wHp+/8A6Pn/Aer4/wHr+P8B7fn/Ae35/wPs+v8Y4O3/G7nL/wPt
+ +f8C7fj/A+v4/wLr+P8C6/j/Aur5/wLr+v8D6/r/Aej5/wLo+P8B2fr/Ctf4/yS62/8V0O7/Icrl/xjS
+ 6f8a0ur/JL3V/w3j+v8C5fv/Buf3/yWxwv8U5vb/Aer7/wLr+/8D6/r/Aev5/wLt+v8B7fj/Bur4/xuy
+ wf8Xytr/Auz4/wLs+f8C7Pn/AOv4/wHr+P8B6ff/Aer5/wHq9/8B6fj/Aef6/wLa+v8J2vj/Cdv4/wje
+ +f8H3/j/BOP6/wPj+f8K5Pn/Beb5/wHl+/8F5/n/HNDg/x23zP8D6vr/Aez3/wLr+f8B6/r/Aev6/wPs
+ +P8G6vj/HX+T/xPl8P8C6/j/Aez4/wLr+f8D7Pr/Auv5/wHq+P8C6/r/Auv5/wHp+v8C5/z/Fdb1/xvJ
+ 5/8mwd//Jcni/xzR6/8Y2vP/DOP6/xXc8P8J5vb/Aub7/wLn+v8I5vf/KKe8/xDk8v8C6vn/Aur7/wDq
+ +v8D7Pv/B+r4/xzL2f8duMj/A+r4/wHr+P8B6/j/Aer4/wDo9v8B6vj/Aen4/wLr+v8B6vj/AOf4/wLm
+ +/8budv/H77e/yfB4f84i6//JrrV/yaz0P8mzub/NbPP/xna7f8C5vv/Auf6/wPm+f8W3O3/Jpir/xPo
+ 9v8G6vj/C+r4/xPk8/8fsMP/JHyV/xPj8v8C6vr/Aev4/wHr+f8B6vn/Aen6/wTq/P8C5/v/Aej6/wHo
+ +v8A5Pn/AeP6/wTZ+v8O1fb/E9P1/yLH5v8S2fX/GMzq/xfP6P81oLr/Ftvv/wHk+v8B5vn/Auf6/wTn
+ +f8b1eX/KY6m/yOgt/8ghJz/In6U/xy0xf8T6fX/Buv4/wLr+/8A7Pn/AOv4/wLr+/8B6vv/Aef7/wHl
+ +/8B5/n/AOb5/wHm+f8C5fj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
+
+
+
\ No newline at end of file
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.exe b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.exe
new file mode 100644
index 0000000..e72244f
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.exe differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.pdb b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.pdb
new file mode 100644
index 0000000..2b06aa1
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.pdb differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe
new file mode 100644
index 0000000..bb84a51
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe.manifest b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe.manifest
new file mode 100644
index 0000000..061c9ca
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/CsharpOSMeteorCodeGenerator.vshost.exe.manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssembly.dll b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssembly.dll
new file mode 100644
index 0000000..2a6e2fc
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssembly.dll differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssemblyExample.dll b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssemblyExample.dll
new file mode 100644
index 0000000..7de866f
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/DynamicAssemblyExample.dll differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/ICSharpCode.TextEditor.dll b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/ICSharpCode.TextEditor.dll
new file mode 100644
index 0000000..f4a858a
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/ICSharpCode.TextEditor.dll differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/OSMeteorAssemblyDB.dll b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/OSMeteorAssemblyDB.dll
new file mode 100644
index 0000000..60e56c9
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/bin/Debug/OSMeteorAssemblyDB.dll differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempADO_Code.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempADO_Code.cs
new file mode 100644
index 0000000..ebb3ad4
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempADO_Code.cs
@@ -0,0 +1,13 @@
+public DataTable Table_1Select_Custom666(System.String column1,System.Int32 column2,System.DateTime column3,System.Guid id)
+{
+ string sql="use test select column1,column2,column3,id from [test].[dbo].[Table_1] where column1=@column1,column2=@column2,column3=@column3,id=@id"
+
+ SqlParameter[] spms = {
+ new SqlParameter("@column1", SqlDbType.VarChar , -1 ) { Value =column1 },
+ new SqlParameter("@column2", SqlDbType.Int ) { Value =column2 },
+ new SqlParameter("@column3", SqlDbType.DateTime ) { Value =column3 },
+ new SqlParameter("@id", SqlDbType.UniqueIdentifier ) { Value =id }
+ };
+ return SqlHelper.ExecuteDataTable(SqlHelper.ConnectionString, CommandType.Text, sql, spms);
+}
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempado.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempado.cs
new file mode 100644
index 0000000..fc81e21
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempado.cs
@@ -0,0 +1,26 @@
+/************SqlParameter****************/
+
+ using (SqlConnection conn = new SqlConnection(connectionString))
+ {
+ conn.Open();
+ SqlCommand comm = new SqlCommand();
+ comm.Connection = conn;
+ string strql_insert="insert into tb_module_type(id,pid,mtype_name,mtype_code,loop,pic_name,memo,stauts) values(@id,@pid,@mtype_name,@mtype_code,@loop,@pic_name,@memo,@stauts)";
+ string strql_select=" select id,pid,mtype_name,mtype_code,loop,pic_name,memo,stauts from tb_module_type where 1=1 ";
+ string sql_update=" update tb_module_type set id= @id,pid= @pid,mtype_name= @mtype_name,mtype_code= @mtype_code,loop= @loop,pic_name= @pic_name,memo= @memo,stauts= @stauts where 1=1 ";
+ comm.CommandText = "";
+ comm.Parameters.Add(new SqlParameter("@id", SqlDbType.UniqueIdentifier ) { Value = "v_id" });
+ comm.Parameters.Add(new SqlParameter("@pid", SqlDbType.UniqueIdentifier ) { Value = "v_pid" });
+ comm.Parameters.Add(new SqlParameter("@mtype_name", SqlDbType.VarChar , -1 ) { Value = "v_mtype_name" });
+ comm.Parameters.Add(new SqlParameter("@mtype_code", SqlDbType.VarChar , -1 ) { Value = "v_mtype_code" });
+ comm.Parameters.Add(new SqlParameter("@loop", SqlDbType.Int ) { Value = "v_loop" });
+ comm.Parameters.Add(new SqlParameter("@pic_name", SqlDbType.VarChar , -1 ) { Value = "v_pic_name" });
+ comm.Parameters.Add(new SqlParameter("@memo", SqlDbType.VarChar , -1 ) { Value = "v_memo" });
+ comm.Parameters.Add(new SqlParameter("@stauts", SqlDbType.Int ) { Value = "v_stauts" });
+ comm.ExecuteNonQuery();
+ //SqlDataAdapter adp = new SqlDataAdapter(comm);
+ //DataSet result =adp.Fill(result);
+ conn.Close();
+ }
+/****************************/
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempentity.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempentity.cs
new file mode 100644
index 0000000..48c88e7
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempentity.cs
@@ -0,0 +1,42 @@
+
+/*************EntityClass***************/
+ public class tb_module_type
+ {
+
+ public string id { get; set ; }
+ public string pid { get; set ; }
+ public string mtype_name { get; set ; }
+ public string mtype_code { get; set ; }
+ public int loop { get; set ; }
+ public string pic_name { get; set ; }
+ public string memo { get; set ; }
+ public int stauts { get; set ; }
+
+ }
+/***************Entity*************/
+
+ tb_module_type newojb = new tb_module_type();
+ newojb.id=(uniqueidentifier);
+ newojb.pid=(uniqueidentifier);
+ newojb.mtype_name=(varchar);
+ newojb.mtype_code=(varchar);
+ newojb.loop=(int);
+ newojb.pic_name=(varchar);
+ newojb.memo=(varchar);
+ newojb.stauts=(int);
+/***********Entity*****************/
+
+ tb_module_type newojb = new tb_module_type()
+ {
+ id=(uniqueidentifier),
+ pid=(uniqueidentifier),
+ mtype_name=(varchar),
+ mtype_code=(varchar),
+ loop=(int),
+ pic_name=(varchar),
+ memo=(varchar),
+ stauts=(int)
+ };
+/*************JSON***************/
+{ "id": v_id(uniqueidentifier), "pid": v_pid(uniqueidentifier), "mtype_name": v_mtype_name(varchar), "mtype_code": v_mtype_code(varchar), "loop": v_loop(int), "pic_name": v_pic_name(varchar), "memo": v_memo(varchar), "stauts": v_stauts(int)}
+/****************************/
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/templinq.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/templinq.cs
new file mode 100644
index 0000000..b993fa9
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/templinq.cs
@@ -0,0 +1,137 @@
+//
+/************linqselect****************/
+public static List getALLuserlist()
+{
+ List rslist=new List();
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {
+ var querylist = from s in db.tb_module_type orderby s.id select s ;
+ if(querylist==null)
+ {
+ return rslist;
+ }
+ foreach (var obj in querylist)
+ {
+ Entity.tb_module_type query=new Entity.tb_module_type ();
+ query.id=(Object)obj.id;
+ query.pid=(Object)obj.pid;
+ query.mtype_name=(String)obj.mtype_name;
+ query.mtype_code=(String)obj.mtype_code;
+ query.loop=(Int32)obj.loop;
+ query.pic_name=(String)obj.pic_name;
+ query.memo=(String)obj.memo;
+ query.stauts=(Int32)obj.stauts;
+
+ rslist.Add(query);
+ }
+ }
+ return rslist;
+ }
+/****************************/
+//
+/************linqselectToIEnumerable****************/
+public static IEnumerable getALLtb_module_typeToIEnumerable(?Expression> expression,int isall)
+{
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {
+ if (isall == 1)
+ {
+ return db.tb_module_type.Rows.Cast();
+ }
+ else
+ {
+ return db.tb_module_type.Rows.Cast().AsQueryable().Where(expression);
+ }
+ }
+}
+/****************************/
+
+/************linqAdd****************/
+public static int tb_module_typeAdd(Entity.tb_module_type obj)
+{
+ int rs = 0;//0 >>add failure
+ //1 >>Has been in existence can't repeat to add
+ //2 >>add success
+ using (DataObjectDataContext dt = new DataObjectDataContext())
+ {
+ var query = from s in dt.tb_module_type
+ where (your conditions)
+ select s ;
+ if (query.ToList().Count > 0)
+ {
+ rs = 1;
+ }
+ else
+ {
+ tb_module_type newojb = new tb_module_type()
+ {
+ id=(Object)obj.id,
+ pid=(Object)obj.pid,
+ mtype_name=(String)obj.mtype_name,
+ mtype_code=(String)obj.mtype_code,
+ loop=(Int32)obj.loop,
+ pic_name=(String)obj.pic_name,
+ memo=(String)obj.memo,
+ stauts=(Int32)obj.stauts
+ };
+ dt.tb_module_type.InsertOnSubmit(newojb);
+ dt.SubmitChanges();
+ rs = 2;
+ }
+ }
+ return rs;
+}
+/****************************/
+
+/************linqDelete****************/
+public static int tb_module_typeDelete(string objid)
+{
+ int rs = 0; // 0 failure
+ //1 Delete the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {
+ var query = db.tb_module_type.SingleOrDefault(s => s.id == System.Guid.Parse(objid));
+ if (query == null)
+ {
+ rs = 1;
+ return rs;
+ }
+ db.tb_module_type.DeleteOnSubmit(query);
+ db.SubmitChanges();
+ rs=2;
+ }
+ return rs;
+}
+/****************************/
+
+/************linqUpdate****************/
+ public static int tb_module_typeUpdate(Entity.tb_module_type obj)
+ {
+ int rs = 0;// 0 failure
+ //1 update the object does not exist
+ //2 success
+ using (DataObjectDataContext db = new DataObjectDataContext())
+ {
+ var query = db.tb_module_type.SingleOrDefault(s => s.id == System.Guid.Parse(obj.id));
+ if (query == null)
+ {
+ rs = 1;
+ return rs;
+ }
+ query.id=(Object)obj.id;
+ query.pid=(Object)obj.pid;
+ query.mtype_name=(String)obj.mtype_name;
+ query.mtype_code=(String)obj.mtype_code;
+ query.loop=(Int32)obj.loop;
+ query.pic_name=(String)obj.pic_name;
+ query.memo=(String)obj.memo;
+ query.stauts=(Int32)obj.stauts;
+
+ db.SubmitChanges();
+ rs = 2;
+
+ }
+ return rs;
+ }
+/****************************/
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempsql.cs b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempsql.cs
new file mode 100644
index 0000000..84d0aa9
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/config/tempsql.cs
@@ -0,0 +1,11 @@
+
+/************Select****************/
+select id,pid,mtype_name,mtype_code,loop,pic_name,memo,stauts from tb_module_type where 1=1
+/************Insert****************/
+insert into tb_module_type(id,pid,mtype_name,mtype_code,loop,pic_name,memo,stauts) values(v_id(string),v_pid(string),v_mtype_name(string),v_mtype_code(string),v_loop(int),v_pic_name(string),v_memo(string),v_stauts(int))
+/************Update****************/
+update tb_module_type set id=(uniqueidentifier),pid=(uniqueidentifier),mtype_name=(varchar),mtype_code=(varchar),loop=(int),pic_name=(varchar),memo=(varchar),stauts=(int)where 1=1
+/************Delete****************/
+delete from tb_module_type where 1=1
+/****************************/
+
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_ADO_CodeGenerator.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_ADO_CodeGenerator.resources
new file mode 100644
index 0000000..24c1a3c
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_ADO_CodeGenerator.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources
new file mode 100644
index 0000000..74d0a8d
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_Main.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_Main.resources
new file mode 100644
index 0000000..3dcfdfe
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_Main.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_login.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_login.resources
new file mode 100644
index 0000000..79b28c8
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.F_login.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Form1Test.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Form1Test.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Form1Test.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Properties.Resources.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.Properties.Resources.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.about.resources b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.about.resources
new file mode 100644
index 0000000..6923c61
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.about.resources differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.csproj.FileListAbsolute.txt b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..3f45ac6
--- /dev/null
+++ b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.csproj.FileListAbsolute.txt
@@ -0,0 +1,62 @@
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\ResolveAssemblyReference.cache
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.about.resources
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_login.resources
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_Main.resources
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Properties.Resources.resources
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.read.1.tlog
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.write.1.tlog
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\CsharpOSMeteorCodeGenerator\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\ResolveAssemblyReference.cache
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.about.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_login.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_Main.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Properties.Resources.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.read.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.write.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\ResolveAssemblyReference.cache
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.about.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_login.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_Main.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Properties.Resources.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.read.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.write.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv2.01\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\ResolveAssemblyReference.cache
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.about.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_login.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_Main.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Properties.Resources.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.read.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.write.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv3.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_ADO_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\ResolveAssemblyReference.cache
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.about.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Form1Test.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_ADO_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_CodeGenerator.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_login.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.F_Main.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.Properties.Resources.resources
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.read.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\GenerateResource.write.1.tlog
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\bin\Debug\CsharpOSMeteorCodeGenerator.pdb
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.exe
+D:\我的文档\VS2010\Projects\Meteor代码生成器\CsharpOSMeteorCodeGeneratorv4.0\CsharpOSMeteorCodeGenerator\obj\x86\Debug\CsharpOSMeteorCodeGenerator.pdb
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.exe b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.exe
new file mode 100644
index 0000000..e72244f
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.exe differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.pdb b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.pdb
new file mode 100644
index 0000000..2b06aa1
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/CsharpOSMeteorCodeGenerator.pdb differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..a0b1708
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..23089ab
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.read.1.tlog b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.read.1.tlog
new file mode 100644
index 0000000..b483916
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.read.1.tlog differ
diff --git a/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.write.1.tlog b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.write.1.tlog
new file mode 100644
index 0000000..39e2841
Binary files /dev/null and b/CsharpOSMeteorCodeGeneratorv4.0/CsharpOSMeteorCodeGenerator/obj/x86/Debug/GenerateResource.write.1.tlog differ