public void AddParameter(SQLHelper Helper) { if (!typeof(DataType).IsOfType(typeof(string))) { Helper.AddParameter(ID, Value); } else { Helper.AddParameter(ID, Length, Value.ToString()); } }
/// <summary> /// Sets up the views /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupViews(string ConnectionString, Database Temp) { foreach (View View in Temp.Views) { string Command = "SELECT OBJECT_DEFINITION(sys.views.object_id) as Definition FROM sys.views WHERE sys.views.name=@ViewName"; using (SQLHelper Helper = new SQLHelper(Command, CommandType.Text, ConnectionString)) { Helper.AddParameter("@ViewName", View.Name) .ExecuteReader(); if (Helper.Read()) { View.Definition = Helper.GetParameter("Definition", ""); } } Command = "SELECT sys.columns.name AS [Column], sys.systypes.name AS [COLUMN TYPE], sys.columns.max_length as [MAX LENGTH], sys.columns.is_nullable as [IS NULLABLE] FROM sys.views INNER JOIN sys.columns on sys.columns.object_id=sys.views.object_id INNER JOIN sys.systypes ON sys.systypes.xtype = sys.columns.system_type_id WHERE (sys.views.name = @ViewName) AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, CommandType.Text, ConnectionString)) { Helper.AddParameter("@ViewName", View.Name) .ExecuteReader(); while (Helper.Read()) { string ColumnName = Helper.GetParameter("Column", ""); string ColumnType = Helper.GetParameter("COLUMN TYPE", ""); int MaxLength = Helper.GetParameter("MAX LENGTH", 0); if (ColumnType == "nvarchar") { MaxLength /= 2; } bool Nullable = Helper.GetParameter("IS NULLABLE", false); View.AddColumn <string>(ColumnName, ColumnType.To <string, SqlDbType>().To(DbType.Int32), MaxLength, Nullable); } } } }
protected SQLHelper ObjectToDeleteSQlHelper(object obj, string key, object whereValue) { ObjectResolverManage manage = ObjectResolverManage.GetInstance(); List <ClassFiledInfo> list = manage.GetTableColumnsInfo(obj); SQLHelper helper = new SQLHelper("delete " + manage.GetTableName(obj) + " "); helper.Append(" where " + key + "=@" + key); helper.AddParameter(whereValue); return(helper); }
/// <summary> /// Sets up the tables (pulls columns, etc.) /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupTables(string ConnectionString, Database Temp) { foreach (Table Table in Temp.Tables) { string Command = "SELECT sys.columns.name AS [Column], sys.systypes.name AS [COLUMN TYPE], sys.columns.max_length as [MAX LENGTH], sys.columns.is_nullable as [IS NULLABLE], sys.columns.is_identity as [IS IDENTITY], sys.index_columns.index_id as [IS INDEX], key_constraints.name as [PRIMARY KEY], key_constraints_1.name as [UNIQUE], tables_1.name as [FOREIGN KEY TABLE], columns_1.name as [FOREIGN KEY COLUMN], sys.default_constraints.definition as [DEFAULT VALUE] FROM sys.tables INNER JOIN sys.columns on sys.columns.object_id=sys.tables.object_id INNER JOIN sys.systypes ON sys.systypes.xtype = sys.columns.system_type_id LEFT OUTER JOIN sys.index_columns on sys.index_columns.object_id=sys.tables.object_id and sys.index_columns.column_id=sys.columns.column_id LEFT OUTER JOIN sys.key_constraints on sys.key_constraints.parent_object_id=sys.tables.object_id and sys.key_constraints.parent_object_id=sys.index_columns.object_id and sys.index_columns.index_id=sys.key_constraints.unique_index_id and sys.key_constraints.type='PK' LEFT OUTER JOIN sys.foreign_key_columns on sys.foreign_key_columns.parent_object_id=sys.tables.object_id and sys.foreign_key_columns.parent_column_id=sys.columns.column_id LEFT OUTER JOIN sys.tables as tables_1 on tables_1.object_id=sys.foreign_key_columns.referenced_object_id LEFT OUTER JOIN sys.columns as columns_1 on columns_1.column_id=sys.foreign_key_columns.referenced_column_id and columns_1.object_id=tables_1.object_id LEFT OUTER JOIN sys.key_constraints as key_constraints_1 on key_constraints_1.parent_object_id=sys.tables.object_id and key_constraints_1.parent_object_id=sys.index_columns.object_id and sys.index_columns.index_id=key_constraints_1.unique_index_id and key_constraints_1.type='UQ' LEFT OUTER JOIN sys.default_constraints on sys.default_constraints.object_id=sys.columns.default_object_id WHERE (sys.tables.name = @TableName) AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, CommandType.Text, ConnectionString)) { Helper.AddParameter("@TableName", Table.Name) .ExecuteReader(); while (Helper.Read()) { string ColumnName = Helper.GetParameter("Column", ""); string ColumnType = Helper.GetParameter("COLUMN TYPE", ""); int MaxLength = Helper.GetParameter("MAX LENGTH", 0); if (ColumnType == "nvarchar") { MaxLength /= 2; } bool Nullable = Helper.GetParameter("IS NULLABLE", false); bool Identity = Helper.GetParameter("IS IDENTITY", false); bool Index = Helper.GetParameter("IS INDEX", 0) != 0; bool PrimaryKey = string.IsNullOrEmpty(Helper.GetParameter("PRIMARY KEY", "")) ? false : true; bool Unique = string.IsNullOrEmpty(Helper.GetParameter("UNIQUE", "")) ? false : true; string ForeignKeyTable = Helper.GetParameter("FOREIGN KEY TABLE", ""); string ForeignKeyColumn = Helper.GetParameter("FOREIGN KEY COLUMN", ""); string DefaultValue = Helper.GetParameter("DEFAULT VALUE", ""); if (Table.ContainsColumn(ColumnName)) { Table.AddForeignKey(ColumnName, ForeignKeyTable, ForeignKeyColumn); } else { Table.AddColumn(ColumnName, ColumnType.To <string, SqlDbType>().To(DbType.Int32), MaxLength, Nullable, Identity, Index, PrimaryKey, Unique, ForeignKeyTable, ForeignKeyColumn, DefaultValue); } } } Command = "SELECT sys.triggers.name as Name,sys.trigger_events.type as Type,OBJECT_DEFINITION(sys.triggers.object_id) as Definition FROM sys.triggers INNER JOIN sys.trigger_events ON sys.triggers.object_id=sys.trigger_events.object_id INNER JOIN sys.tables on sys.triggers.parent_id=sys.tables.object_id where sys.tables.name=@TableName"; using (SQLHelper Helper = new SQLHelper(Command, CommandType.Text, ConnectionString)) { Helper.AddParameter("@TableName", Table.Name) .ExecuteReader(); while (Helper.Read()) { string Name = Helper.GetParameter("Name", ""); int Type = Helper.GetParameter("Type", 0); string Definition = Helper.GetParameter("Definition", ""); Table.AddTrigger(Name, Definition, Type.ToString(CultureInfo.InvariantCulture).To <string, TriggerType>()); } } } foreach (Table Table in Temp.Tables) { Table.SetupForeignKeys(); } }
private static bool CheckExists(string Command, string Name, string ConnectionString) { using (SQLHelper Helper = new SQLHelper(Command, CommandType.Text, ConnectionString)) { try { return(Helper.AddParameter("@Name", Name) .ExecuteReader() .Read()); } catch { } } return(false); }
/// <summary> /// Sets up stored procedures /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupStoredProcedures(string ConnectionString, Database Temp) { string Command = "SELECT sys.procedures.name as NAME,OBJECT_DEFINITION(sys.procedures.object_id) as DEFINITION FROM sys.procedures"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.ExecuteReader(); while (Helper.Read()) { string ProcedureName = (string)Helper.GetParameter("NAME", ""); string Definition = (string)Helper.GetParameter("DEFINITION", ""); Temp.AddStoredProcedure(ProcedureName, Definition); } } catch { } finally { Helper.Close(); } } foreach (StoredProcedure Procedure in Temp.StoredProcedures) { Command = "SELECT sys.systypes.name as TYPE,sys.parameters.name as NAME,sys.parameters.max_length as LENGTH,sys.parameters.default_value as [DEFAULT VALUE] FROM sys.procedures INNER JOIN sys.parameters on sys.procedures.object_id=sys.parameters.object_id INNER JOIN sys.systypes on sys.systypes.xusertype=sys.parameters.system_type_id WHERE sys.procedures.name=@ProcedureName AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@ProcedureName", 128, Procedure.Name); Helper.ExecuteReader(); while (Helper.Read()) { string Type = (string)Helper.GetParameter("TYPE", ""); string Name = (string)Helper.GetParameter("NAME", ""); int Length = int.Parse(Helper.GetParameter("LENGTH", 0).ToString()); if (Type == "nvarchar") { Length /= 2; } string Default = (string)Helper.GetParameter("DEFAULT VALUE", ""); Procedure.AddColumn <string>(Name, Type.TryTo <string, SqlDbType>().ToDbType(), Length, Default); } } catch { } finally { Helper.Close(); } } } }
/// <summary> /// Checks if something exists /// </summary> /// <param name="Command">Command to run</param> /// <param name="Name">Name of the item</param> /// <param name="ConnectionString">Connection string</param> /// <returns>True if it exists, false otherwise</returns> private static bool CheckExists(string Command, string Name, string ConnectionString) { bool Exists = false; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@Name", 200, Name); Helper.ExecuteReader(); if (Helper.Read()) { Exists = true; } } catch { } finally { Helper.Close(); } } return(Exists); }
/// <summary> /// Sets up the views /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupViews(string ConnectionString, Database Temp) { foreach (View View in Temp.Views) { string Command = "SELECT OBJECT_DEFINITION(sys.views.object_id) as Definition FROM sys.views WHERE sys.views.name=@ViewName"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.AddParameter("@ViewName", View.Name) .ExecuteReader(); if (Helper.Read()) { View.Definition = Helper.GetParameter("Definition", ""); } } Command = "SELECT sys.columns.name AS [Column], sys.systypes.name AS [COLUMN TYPE], sys.columns.max_length as [MAX LENGTH], sys.columns.is_nullable as [IS NULLABLE] FROM sys.views INNER JOIN sys.columns on sys.columns.object_id=sys.views.object_id INNER JOIN sys.systypes ON sys.systypes.xtype = sys.columns.system_type_id WHERE (sys.views.name = @ViewName) AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.AddParameter("@ViewName", View.Name) .ExecuteReader(); while (Helper.Read()) { string ColumnName = Helper.GetParameter("Column", ""); string ColumnType = Helper.GetParameter("COLUMN TYPE", ""); int MaxLength = Helper.GetParameter("MAX LENGTH", 0); if (ColumnType == "nvarchar") MaxLength /= 2; bool Nullable = Helper.GetParameter("IS NULLABLE", false); View.AddColumn<string>(ColumnName, ColumnType.TryTo<string, SqlDbType>().ToDbType(), MaxLength, Nullable); } } } }
/// <summary> /// Sets up the tables (pulls columns, etc.) /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupTables(string ConnectionString, Database Temp) { foreach (Table Table in Temp.Tables) { string Command = "SELECT sys.columns.name AS [Column], sys.systypes.name AS [COLUMN TYPE], sys.columns.max_length as [MAX LENGTH], sys.columns.is_nullable as [IS NULLABLE], sys.columns.is_identity as [IS IDENTITY], sys.index_columns.index_id as [IS INDEX], key_constraints.name as [PRIMARY KEY], key_constraints_1.name as [UNIQUE], tables_1.name as [FOREIGN KEY TABLE], columns_1.name as [FOREIGN KEY COLUMN], sys.default_constraints.definition as [DEFAULT VALUE] FROM sys.tables INNER JOIN sys.columns on sys.columns.object_id=sys.tables.object_id INNER JOIN sys.systypes ON sys.systypes.xtype = sys.columns.system_type_id LEFT OUTER JOIN sys.index_columns on sys.index_columns.object_id=sys.tables.object_id and sys.index_columns.column_id=sys.columns.column_id LEFT OUTER JOIN sys.key_constraints on sys.key_constraints.parent_object_id=sys.tables.object_id and sys.key_constraints.parent_object_id=sys.index_columns.object_id and sys.index_columns.index_id=sys.key_constraints.unique_index_id and sys.key_constraints.type='PK' LEFT OUTER JOIN sys.foreign_key_columns on sys.foreign_key_columns.parent_object_id=sys.tables.object_id and sys.foreign_key_columns.parent_column_id=sys.columns.column_id LEFT OUTER JOIN sys.tables as tables_1 on tables_1.object_id=sys.foreign_key_columns.referenced_object_id LEFT OUTER JOIN sys.columns as columns_1 on columns_1.column_id=sys.foreign_key_columns.referenced_column_id and columns_1.object_id=tables_1.object_id LEFT OUTER JOIN sys.key_constraints as key_constraints_1 on key_constraints_1.parent_object_id=sys.tables.object_id and key_constraints_1.parent_object_id=sys.index_columns.object_id and sys.index_columns.index_id=key_constraints_1.unique_index_id and key_constraints_1.type='UQ' LEFT OUTER JOIN sys.default_constraints on sys.default_constraints.object_id=sys.columns.default_object_id WHERE (sys.tables.name = @TableName) AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.AddParameter("@TableName", Table.Name) .ExecuteReader(); while (Helper.Read()) { string ColumnName = Helper.GetParameter("Column", ""); string ColumnType = Helper.GetParameter("COLUMN TYPE", ""); int MaxLength = Helper.GetParameter("MAX LENGTH", 0); if (ColumnType == "nvarchar") MaxLength /= 2; bool Nullable = Helper.GetParameter("IS NULLABLE", false); bool Identity = Helper.GetParameter("IS IDENTITY", false); bool Index = Helper.GetParameter("IS INDEX", 0) != 0; bool PrimaryKey = Helper.GetParameter("PRIMARY KEY", "").IsNullOrEmpty() ? false : true; bool Unique = Helper.GetParameter("UNIQUE", "").IsNullOrEmpty() ? false : true; string ForeignKeyTable = Helper.GetParameter("FOREIGN KEY TABLE", ""); string ForeignKeyColumn = Helper.GetParameter("FOREIGN KEY COLUMN", ""); string DefaultValue = Helper.GetParameter("DEFAULT VALUE", ""); if (Table.ContainsColumn(ColumnName)) { Table.AddForeignKey(ColumnName, ForeignKeyTable, ForeignKeyColumn); } else { Table.AddColumn(ColumnName, ColumnType.TryTo<string, SqlDbType>().ToDbType(), MaxLength, Nullable, Identity, Index, PrimaryKey, Unique, ForeignKeyTable, ForeignKeyColumn, DefaultValue); } } } Command = "SELECT sys.triggers.name as Name,sys.trigger_events.type as Type,OBJECT_DEFINITION(sys.triggers.object_id) as Definition FROM sys.triggers INNER JOIN sys.trigger_events ON sys.triggers.object_id=sys.trigger_events.object_id INNER JOIN sys.tables on sys.triggers.parent_id=sys.tables.object_id where sys.tables.name=@TableName"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.AddParameter("@TableName", Table.Name) .ExecuteReader(); while (Helper.Read()) { string Name = Helper.GetParameter("Name", ""); int Type = Helper.GetParameter("Type", 0); string Definition = Helper.GetParameter("Definition", ""); Table.AddTrigger(Name, Definition, Type.ToString().TryTo<string, TriggerType>()); } } } foreach (Table Table in Temp.Tables) { Table.SetupForeignKeys(); } }
/// <summary> /// Sets up stored procedures /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupStoredProcedures(string ConnectionString, Database Temp) { string Command = "SELECT sys.procedures.name as NAME,OBJECT_DEFINITION(sys.procedures.object_id) as DEFINITION FROM sys.procedures"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.ExecuteReader(); while (Helper.Read()) { string ProcedureName = Helper.GetParameter("NAME", ""); string Definition = Helper.GetParameter("DEFINITION", ""); Temp.AddStoredProcedure(ProcedureName, Definition); } } foreach (StoredProcedure Procedure in Temp.StoredProcedures) { Command = "SELECT sys.systypes.name as TYPE,sys.parameters.name as NAME,sys.parameters.max_length as LENGTH,sys.parameters.default_value as [DEFAULT VALUE] FROM sys.procedures INNER JOIN sys.parameters on sys.procedures.object_id=sys.parameters.object_id INNER JOIN sys.systypes on sys.systypes.xusertype=sys.parameters.system_type_id WHERE sys.procedures.name=@ProcedureName AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { Helper.AddParameter("@ProcedureName", Procedure.Name) .ExecuteReader(); while (Helper.Read()) { string Type = Helper.GetParameter("TYPE", ""); string Name = Helper.GetParameter("NAME", ""); int Length = Helper.GetParameter("LENGTH", 0); if (Type == "nvarchar") Length /= 2; string Default = Helper.GetParameter("DEFAULT VALUE", ""); Procedure.AddColumn<string>(Name, Type.TryTo<string, SqlDbType>().ToDbType(), Length, Default); } } } }
/// <summary> /// Checks if something exists /// </summary> /// <param name="Command">Command to run</param> /// <param name="Name">Name of the item</param> /// <param name="ConnectionString">Connection string</param> /// <returns>True if it exists, false otherwise</returns> private static bool CheckExists(string Command, string Name, string ConnectionString) { using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { return Helper.AddParameter("@Name", Name) .ExecuteReader() .Read(); } catch { } } return false; }
/// <summary> /// Sets up the views /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupViews(string ConnectionString, Database Temp) { foreach (View View in Temp.Views) { string Command = "SELECT OBJECT_DEFINITION(sys.views.object_id) as Definition FROM sys.views WHERE sys.views.name=@ViewName"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@ViewName", View.Name, 128); Helper.ExecuteReader(); if (Helper.Read()) { View.Definition = (string)Helper.GetParameter("Definition", ""); } } catch { } finally { Helper.Close(); } } Command = "SELECT sys.columns.name AS [Column], sys.systypes.name AS [COLUMN TYPE], sys.columns.max_length as [MAX LENGTH], sys.columns.is_nullable as [IS NULLABLE] FROM sys.views INNER JOIN sys.columns on sys.columns.object_id=sys.views.object_id INNER JOIN sys.systypes ON sys.systypes.xtype = sys.columns.system_type_id WHERE (sys.views.name = @ViewName) AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@ViewName", View.Name, 128); Helper.ExecuteReader(); while (Helper.Read()) { string ColumnName = (string)Helper.GetParameter("Column", ""); string ColumnType = (string)Helper.GetParameter("COLUMN TYPE", ""); int MaxLength = (int)(int.Parse(Helper.GetParameter("MAX LENGTH", 0).ToString())); bool Nullable = (bool)Helper.GetParameter("IS NULLABLE", false); View.AddColumn(ColumnName, ColumnType, MaxLength, Nullable); } } catch { } finally { Helper.Close(); } } } }
/// <summary> /// Sets up stored procedures /// </summary> /// <param name="ConnectionString">Connection string</param> /// <param name="Temp">Database object</param> private static void SetupStoredProcedures(string ConnectionString, Database Temp) { string Command = "SELECT sys.procedures.name as NAME,OBJECT_DEFINITION(sys.procedures.object_id) as DEFINITION FROM sys.procedures"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.ExecuteReader(); while (Helper.Read()) { string ProcedureName = (string)Helper.GetParameter("NAME", ""); string Definition = (string)Helper.GetParameter("DEFINITION", ""); Temp.AddStoredProcedure(ProcedureName, Definition); } } catch { } finally { Helper.Close(); } } foreach (StoredProcedure Procedure in Temp.StoredProcedures) { Command = "SELECT sys.systypes.name as TYPE,sys.parameters.name as NAME,sys.parameters.max_length as LENGTH,sys.parameters.default_value as [DEFAULT VALUE] FROM sys.procedures INNER JOIN sys.parameters on sys.procedures.object_id=sys.parameters.object_id INNER JOIN sys.systypes on sys.systypes.xusertype=sys.parameters.system_type_id WHERE sys.procedures.name=@ProcedureName AND (sys.systypes.xusertype <> 256)"; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@ProcedureName", Procedure.Name, 128); Helper.ExecuteReader(); while (Helper.Read()) { string Type = (string)Helper.GetParameter("TYPE", ""); string Name = (string)Helper.GetParameter("NAME", ""); int Length = int.Parse(Helper.GetParameter("LENGTH", 0).ToString()); string Default = (string)Helper.GetParameter("DEFAULT VALUE", ""); Procedure.AddColumn(Name, Type, Length, Default); } } catch { } finally { Helper.Close(); } } } }
/// <summary> /// Adds the parameter to the SQLHelper /// </summary> /// <param name="Helper">SQLHelper to add the parameter to</param> public void AddParameter(SQLHelper Helper) { Helper.AddParameter(ID + "Min", Min); Helper.AddParameter(ID + "Max", Max); }
/// <summary> /// Adds the parameter to the SQLHelper /// </summary> /// <param name="Helper">SQLHelper to add the parameter to</param> public void AddParameter(SQLHelper Helper) { Helper.AddParameter(ID, Length, Value); }
/// <summary> /// Checks if something exists /// </summary> /// <param name="Command">Command to run</param> /// <param name="Name">Name of the item</param> /// <param name="ConnectionString">Connection string</param> /// <returns>True if it exists, false otherwise</returns> private static bool CheckExists(string Command, string Name, string ConnectionString) { bool Exists = false; using (SQLHelper Helper = new SQLHelper(Command, ConnectionString, CommandType.Text)) { try { Helper.Open(); Helper.AddParameter("@Name",200, Name); Helper.ExecuteReader(); if (Helper.Read()) Exists = true; } catch { } finally { Helper.Close(); } } return Exists; }