private void AddColumnNode(TreeNode treeNode, Column column) { TreeNode node; node = new TreeNode(column.PropertyName); node.Tag = TreeNodeTypes.Column; treeNode.Nodes.Add(node); }
/// <summary> /// Matches a SQL Server data type to a SqlClient.SqlDbType. /// </summary> /// <param name="column">Object that stores the information for the column the parameter represents.</param> /// <returns>A string representing a SqlClient.SqlDbType.</returns> public static string GetSqlDBType(Column column) { switch (column.DbType.ToLower()) { case "binary": return "Binary"; case "bigint": return "Int64"; case "bit": return "Boolean"; case "char": return "String"; case "datetime": return "DateTime"; case "decimal": return "Decimal"; case "float": return "Double"; case "image": return "Binary"; case "int": return "Int32"; case "money": return "Currency"; case "nchar": return "String"; case "ntext": return "String"; case "nvarchar": return "String"; case "numeric": return "Decimal"; case "real": return "Single"; case "smalldatetime": return "DateTime"; case "smallint": return "Int16"; case "smallmoney": return "Currency"; case "sql_variant": return "Object"; case "sysname": return "String"; case "text": return "String"; case "timestamp": return "DateTime"; case "tinyint": return "Byte"; case "varbinary": return "Binary"; case "varchar": return "String"; case "uniqueidentifier": return "Guid"; case "xml": return "String"; default: // Unknow data type throw (new Exception("Invalid SQL Server data type specified: " + column.DbType)); } }
/// <summary> /// Creates a string for a SqlParameter representing the specified column. /// </summary> /// <param name="column">Object that stores the information for the column the parameter represents.</param> /// <returns>String containing SqlParameter information of the specified column for a method call.</returns> public static string CreateSqlParameter(Column column) { string[] methodParameter; string columnDBType = GetSqlDBType(column); // Get an array of data types and variable names methodParameter = CreateMethodParameter(column).Split(' '); return "myCommand.AddInParameter(\"@" + column.PropertyName + "\", DbType." + columnDBType + ", " + methodParameter[1] + ")"; }
/// <summary> /// Creates a string for a method parameter representing the specified column. /// </summary> /// <param name="column">Object that stores the information for the column the parameter represents.</param> /// <returns>String containing parameter information of the specified column for a method call.</returns> public static string CreateMethodParameter(Column column) { string parameter; string columnName; // Format the column name columnName = column.PropertyName; columnName = FormatCamel(columnName); switch (column.DbType.ToLower()) { case "binary": parameter = "byte[] " + columnName; break; case "bigint": parameter = "Int64 " + columnName; break; case "bit": parameter = "bool " + columnName; break; case "char": parameter = "string " + columnName; break; case "datetime": parameter = "DateTime " + columnName; break; case "decimal": parameter = "decimal " + columnName; break; case "float": parameter = "double " + columnName; break; case "image": parameter = "byte[] " + columnName; break; case "int": parameter = "int " + columnName; break; case "money": parameter = "decimal " + columnName; break; case "nchar": parameter = "string " + columnName; break; case "ntext": parameter = "string " + columnName; break; case "nvarchar": parameter = "string " + columnName; break; case "numeric": parameter = "decimal " + columnName; break; case "real": parameter = "float " + columnName; break; case "smalldatetime": parameter = "DateTime " + columnName; break; case "smallint": parameter = "short " + columnName; break; case "smallmoney": parameter = "decimal " + columnName; break; case "sql_variant": parameter = "object " + columnName; break; case "sysname": parameter = "string " + columnName; break; case "text": parameter = "string " + columnName; break; case "timestamp": parameter = "DateTime " + columnName; break; case "tinyint": parameter = "byte " + columnName; break; case "varbinary": parameter = "byte[] " + columnName; break; case "varchar": parameter = "string " + columnName; break; case "uniqueidentifier": parameter = "Guid " + columnName; break; case "xml": parameter = "String " + columnName; break; default: // Unknow data type throw (new Exception("Invalid SQL Server data type specified: " + column.DbType)); } // Return the new parameter string return parameter; }
/// <summary> /// Creates a string containing the parameter declaration for a stored procedure based on the parameters passed in. /// </summary> /// <param name="column">Object that stores the information for the column the parameter represents.</param> /// <returns>String containing parameter information of the specified column for a stored procedure.</returns> public static string CreateParameterString(Column column) { string columnName; string parameter; columnName = column.PropertyName; switch (column.DbType.ToLower()) { case "binary": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "bigint": parameter = "@" + columnName + " " + column.DbType; break; case "bit": parameter = "@" + columnName + " " + column.DbType; break; case "char": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "datetime": parameter = "@" + columnName + " " + column.DbType; break; case "decimal": if (column.Scale.Length == 0) parameter = "@" + columnName + " " + column.DbType + "(" + column.Precision + ")"; else parameter = "@" + columnName + " " + column.DbType + "(" + column.Precision + ", " + column.Scale + ")"; break; case "float": parameter = "@" + columnName + " " + column.DbType + "(" + column.Precision + ")"; break; case "image": parameter = "@" + columnName + " " + column.DbType; break; case "int": parameter = "@" + columnName + " " + column.DbType; break; case "money": parameter = "@" + columnName + " " + column.DbType; break; case "nchar": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "ntext": parameter = "@" + columnName + " " + column.DbType; break; case "nvarchar": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "numeric": if (column.Scale.Length == 0) parameter = "@" + columnName + " " + column.DbType + "(" + column.Precision + ")"; else parameter = "@" + columnName + " " + column.DbType + "(" + column.Precision + ", " + column.Scale + ")"; break; case "real": parameter = "@" + columnName + " " + column.DbType; break; case "smalldatetime": parameter = "@" + columnName + " " + column.DbType; break; case "smallint": parameter = "@" + columnName + " " + column.DbType; break; case "smallmoney": parameter = "@" + columnName + " " + column.DbType; break; case "sql_variant": parameter = "@" + columnName + " " + column.DbType; break; case "sysname": parameter = "@" + columnName + " " + column.DbType; break; case "text": parameter = "@" + columnName + " " + column.DbType; break; case "timestamp": parameter = "@" + columnName + " " + column.DbType; break; case "tinyint": parameter = "@" + columnName + " " + column.DbType; break; case "varbinary": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "varchar": parameter = "@" + columnName + " " + column.DbType + "(" + column.Length + ")"; break; case "uniqueidentifier": parameter = "@" + columnName + " " + column.DbType; break; case "xml": parameter = "@" + columnName + " " + column.DbType; break; default: // Unknow data type throw (new Exception("Invalid SQL Server data type specified: " + column.DbType)); } // Return the new parameter string return parameter; }