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