Beispiel #1
0
 public static Dictionary <string, string> GetTableExtendedProperties(this System.Data.Linq.DataContext dc, string tableName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetExtendedProperties());
 }
Beispiel #2
0
 public static IEnumerable <string> GetTableColumnNames(this System.Data.Linq.DataContext dc, string tableName, string extendedProperty, string value)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetColumnNames(extendedProperty, value));
 }
Beispiel #3
0
 public static void AddExtendedPropertyToColumn(this System.Data.Linq.DataContext dc, string tableName, string columnName, string propertyName, string value)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     tableHelper.AddExtendedPropertyToColumn(columnName, propertyName, value);
 }
Beispiel #4
0
 public static string GetNewField(this System.Data.Linq.DataContext dc, string tableName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetNewField());
 }
Beispiel #5
0
 public static string GetColumnExtendedProperty(this System.Data.Linq.DataContext dc, string tableName, string columnName, string property)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     return(tableHelper.GetColumnExtendedProperty(columnName, property));
 }
Beispiel #6
0
 public static void DeleteTableExtendedProperty(this System.Data.Linq.DataContext dc, string tableName, string propertyName)
 {
     Njit.Sql.TableHelper tableHelper;
     if ((dc.Connection.State & ConnectionState.Open) == ConnectionState.Open && dc.Transaction != null)
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection, dc.Transaction, tableName);
     }
     else
     {
         tableHelper = new Njit.Sql.TableHelper(dc.Connection.ConnectionString, tableName);
     }
     tableHelper.DeleteTableExtendedProperty(propertyName);
 }
Beispiel #7
0
        /// <summary>
        /// ثبت
        /// </summary>
        /// <param name="model">یک شی معادل با جدول پایگاه داده</param>
        /// <returns>تعداد سطرهای درج شده برگشت داده میشود</returns>
        public int InsertObject(object model)
        {
            Type type = model.GetType();

            Njit.Sql.TableHelper _TableHelper    = new TableHelper(this.Connection, this.Transaction, type.Name);
            List <string>        identityColumns = _TableHelper.GetIdentityColumns();

            Command.Parameters.Clear();
            System.Reflection.PropertyInfo[]          properties = model.GetType().GetProperties().Where(t => !identityColumns.Contains(t.Name) && t.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).Count() > 0).ToArray();
            List <System.Data.SqlClient.SqlParameter> parameters = new List <System.Data.SqlClient.SqlParameter>();
            int index = 0;

            foreach (var property in properties)
            {
                SqlParameter p = new SqlParameter("@p" + (index++).ToString(), property.GetValue(model, null) ?? DBNull.Value);
                Command.Parameters.Add(p);
                parameters.Add(p);
            }
            Command.CommandText = string.Format("INSERT INTO [{0}] ({1}) VALUES({2})", type.Name, properties.Select(t => "[" + t.Name + "]").Aggregate((a, b) => a + "," + b), parameters.Select(t => t.ParameterName).Aggregate((a, b) => a + "," + b));
            Command.CommandType = CommandType.Text;
            System.Data.ConnectionState previousConnectionState = Connection.State;
            if (((Connection.State & System.Data.ConnectionState.Open) != System.Data.ConnectionState.Open))
            {
                try
                {
                    Connection.Open();
                }
                catch (Exception ex)
                {
                    throw new Exception("ارتباط با سرور اس کیو ال برقرار نیست" + "\n\n" + ex.Message);
                }
            }
            int i;

            try
            {
                i = Command.ExecuteNonQuery();
            }
            finally
            {
                if ((previousConnectionState == System.Data.ConnectionState.Closed))
                {
                    Connection.Close();
                }
            }
            return(i);
        }
Beispiel #8
0
        /// <summary>
        /// حذف
        /// </summary>
        /// <param name="model">یک شی معادل با جدول پایگاه داده</param>
        /// <returns>تعداد سطرهای حذف شده برگشت داده میشود</returns>
        public int DeleteObject(object model)
        {
            Type type = model.GetType();

            Njit.Sql.TableHelper tableHelper = new TableHelper(this.Connection, this.Transaction, type.Name);
            List <string>        keyColumns  = tableHelper.GetKeyColumns();

            Command.Parameters.Clear();
            List <System.Data.SqlClient.SqlParameter> parameters = new List <System.Data.SqlClient.SqlParameter>();

            System.Reflection.PropertyInfo[] keyProperties = model.GetType().GetProperties().Where(t => keyColumns.Contains(t.Name)).ToArray();
            foreach (var property in keyProperties)
            {
                System.Data.SqlClient.SqlParameter originalParameter = new System.Data.SqlClient.SqlParameter("@original_" + property.Name, property.GetValue(model, null) ?? DBNull.Value);
                Command.Parameters.Add(originalParameter);
                parameters.Add(originalParameter);
            }

            Command.CommandText = string.Format("DELETE [{0}] WHERE {1}", model.GetType().Name, keyProperties.Select(t => "[" + t.Name + "]" + "=" + "@original_" + t.Name).Aggregate((a, b) => a + " AND " + b));
            Command.CommandType = CommandType.Text;
            System.Data.ConnectionState previousConnectionState = Connection.State;
            if (((Connection.State & System.Data.ConnectionState.Open) != System.Data.ConnectionState.Open))
            {
                try
                {
                    Connection.Open();
                }
                catch (Exception ex)
                {
                    throw new Exception("ارتباط با سرور اس کیو ال برقرار نیست" + "\n\n" + ex.Message);
                }
            }
            int i;

            try
            {
                i = Command.ExecuteNonQuery();
            }
            finally
            {
                if ((previousConnectionState == System.Data.ConnectionState.Closed))
                {
                    Connection.Close();
                }
            }
            return(i);
        }
Beispiel #9
0
 public static void UpdateTableExtendedProperty(this IDbConnection connection, string tableName, string propertyName, string value)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     tableHelper.UpdateTableExtendedProperty(propertyName, value);
 }
Beispiel #10
0
 public static void AddExtendedPropertyToColumn(this IDbConnection connection, string tableName, string columnName, string propertyName, string value)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     tableHelper.AddExtendedPropertyToColumn(columnName, propertyName, value);
 }
Beispiel #11
0
 public static string GetColumnExtendedProperty(this IDbConnection connection, string tableName, string columnName, string property)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetColumnExtendedProperty(columnName, property));
 }
Beispiel #12
0
 public static Dictionary <string, string> GetColumnExtendedProperties(this IDbConnection connection, string tableName, string columnName)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetColumnExtendedProperties(columnName));
 }
Beispiel #13
0
 public static string GetTableIdentityColumn(this IDbConnection connection, string tableName)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetIdentityColumn());
 }
Beispiel #14
0
 public static DataTable GetTableColumns(this IDbConnection connection, string tableName)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetColumns());
 }
Beispiel #15
0
 public static void DeleteColumnExtendedProperty(this IDbConnection connection, string tableName, string columnName, string propertyName)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     tableHelper.DeleteColumnExtendedProperty(columnName, propertyName);
 }
Beispiel #16
0
 public static IEnumerable <string> GetTableColumnNames(this IDbConnection connection, string tableName, string extendedProperty, string value)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetColumnNames(extendedProperty, value));
 }
Beispiel #17
0
 public static string GetNewField(this IDbConnection connection, string tableName)
 {
     Njit.Sql.TableHelper tableHelper = new Njit.Sql.TableHelper(connection.ConnectionString, tableName);
     return(tableHelper.GetNewField());
 }