我们一般都把这些数据库的表字段声明字符串常量,如以下形式:
public const string DutyPsnName = "DUTY_PSN_NAME";
我们数据库字段的命名规则为用“下划线分开有含义的单词”;而对程序中字符串常量命名为“实义的单词首个字母大写”。如上。
对数据库中某个表,读取所有的列名(字段)。
select * from dbo.syscolumns where [id] in
(select TOP 1 [id] from sysobjects where type = N'U' and [name] = 'Some_Table')
#region 数据库字段名映射代码生成
Database db = DatabaseFactory.CreateDatabase("CITYADMIN"); 

DBCommandWrapper cmd = db.GetStoredProcCommandWrapper("stp_Tables");


using (IDataReader dr = db.ExecuteReader(cmd))
{
int count = 0;
while (dr.Read())
{
count ++ ;
string columnName = dr["name"].ToString();
//string temp = columnName.Replace("_", "").ToLower();


int length = columnName.Length;
int i = 0;
string finalString = string.Empty;
if(columnName.IndexOf("_", 0) < 0)
finalString = columnName.Substring(0,1) + columnName.Substring(1).ToLower();
else
{
int tempLength = 0;
bool isOut = false;
while(!isOut)
{ 
if(columnName.IndexOf("_", i) < 0 )
{
isOut = true;
tempLength = length - columnName.LastIndexOf("_") - 1 - 1;
}
else
tempLength = columnName.IndexOf("_", i) - i - 1;
string str = columnName.Substring(i,1) + columnName.Substring( i+1, tempLength).ToLower();
finalString += str;
if(columnName.IndexOf("_", i) > 0)
i = columnName.IndexOf("_", i) + 1;
}
}


Console.WriteLine();
Console.WriteLine("/// <summary>");
Console.WriteLine("///");
Console.WriteLine("/// </summary>");
Console.WriteLine("public const string " + finalString + " = \"" + columnName + "\";");
}
}
#endregion



浙公网安备 33010602011771号