Greate SP, I modified it to create a function to populate the fields. You supply the database connectivity part. Just change the data type of sort on the #tmp table to double, add this:
WHEN DATA_TYPE LIKE '%MONEY%' THEN 'double '
to the other switch statements and paste in the following:
INSERT INTO @temp
SELECT 4.1, '#region Private Method' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.2, 'private void Load' + @table_name + '(int id)' + CHAR(13)
+ CHAR(10) + '{' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.3, 'string sql = "SELECT * FROM ' + @table_name +
' WHERE = " + id.ToString();' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.4, '// Add code to query the database and populate dt'
+ @table_name + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.5, 'if (dt' + @table_name + '.Rows.Count > 0)'
+ CHAR(13) + CHAR(10) + '{' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.6,
CASE
WHEN DATA_TYPE LIKE '%CHAR%' THEN 'this._' + COLUMN_NAME +
' = dt' + @table_name + '.Rows[0]["' + COLUMN_NAME + '"].ToString();'
WHEN DATA_TYPE LIKE '%INT%' THEN 'int.TryParse(dt' + @table_name +
'.Rows[0]["' + COLUMN_NAME + '"].ToString(), out _' + COLUMN_NAME + ');'
WHEN DATA_TYPE LIKE '%DATETIME%' THEN 'DateTime.TryParse(dt' +
@table_name + '.Rows[0]["' + COLUMN_NAME + '"].ToString(), out _'
+ COLUMN_NAME + ');'
WHEN DATA_TYPE LIKE '%BINARY%' THEN 'this._' + COLUMN_NAME +
' = (byte[])dt' + @table_name + '.Rows[0]["' + COLUMN_NAME + '"];'
WHEN DATA_TYPE LIKE '%MONEY%' THEN 'double.TryParse(dt' + @table_name +
'.Rows[0]["' + COLUMN_NAME + '"].ToString(), out _' + COLUMN_NAME + ');'
WHEN DATA_TYPE = 'BIT' THEN 'bool.TryParse(dt' + @table_name + '.Rows[0]["' +
COLUMN_NAME + '"].ToString().Replace("1", "true").Replace("0", "false"), out _'
+ COLUMN_NAME + ');'
WHEN DATA_TYPE LIKE '%TEXT%' THEN 'this._' + COLUMN_NAME +' = dt' +
@table_name + '.Rows[0]["' + COLUMN_NAME + '"].ToString();'
ELSE 'this._' + COLUMN_NAME +' = dt' + @table_name + '.Rows[0]["' +
COLUMN_NAME + '"];'
END + CHAR(13) + CHAR(10)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @table_name
ORDER BY ORDINAL_POSITION
INSERT INTO @temp
SELECT 4.7, '}' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.8, '}' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 4.9, '#endregion' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 5, '#region Private Fields' + CHAR(13) + CHAR(10)
INSERT INTO @temp
SELECT 5.1, 'private DataTable dt' + @table_name + ';'+ CHAR(13) + CHAR(10)