nav*_*een 4 c# architecture asp.net data-access data-structures
编码平台:ASP.NET 2.0 WebForms,带有C#,MySQL作为后端
背景
我目前正在修复修复网站的错误.
其中一个表"注册"有80列.
插入/更新是通过简单的sql语句完成的,没有任何参数化查询.
问题
在注册时,用户可以改变许多参数,导致至少15种INSERT查询.我的问题是如何确保插入所有字段的正确值.
所以,我创造了一个
Dictionary<string, string> fields = new Dictionary<string, string>();
fields.Add("LoginEmail", MySQL.SingleQuoteSQL(txtLoginEmail.Text));
fields.Add("Password", MySQL.SingleQuoteSQL(txtLoginPassword.Text));
fields.Add("ContactName", MySQL.SingleQuoteSQL(txtContactName.Text));
fields.Add("City", MySQL.SingleQuoteSQL(txtCity.Text));
Run Code Online (Sandbox Code Playgroud)
我的想法是做一个像这样的简单插入查询
INSERT INTO registrations("all keys as comma separated string") VALUES ("all keys as comma separated string")
Run Code Online (Sandbox Code Playgroud)
我的问题是
还有,其他更好的方法是什么?
PS:我正在维护代码并使实体类将列映射到属性并且存储值不是一个选项.
Mar*_*ade 11
string list<T>(IEnumerable<T> enumerable)
{
List<T> list = new List<T>(enumerable);
return string.Join(",", list.ToArray());
}
//...
string sql= String.Format("INSERT INTO registrations({0}) VALUES({1})",
list(fields.Keys),
list(fields.Values));
Run Code Online (Sandbox Code Playgroud)