读书人

求教以次代码的作用

发布时间: 2013-08-21 10:42:06 作者: rapoo

求教以下代码的作用

private Command BuildInsertCommand(string userName, MetaData md, FieldValueCollection fields)
{
StringBuilder sql = new StringBuilder();
sql.AppendFormat("INSERT INTO [{0}]", md.TableName);
List<string> columns = new List<string>();
List<string> param = new List<string>();
foreach (string key in fields.Keys)
{
if (!md.FieldMeteDatas[key].IsAutoIncrement)
{
if (md.FieldMeteDatas[key].ColumnName == "Version")
{
columns.Add("Version");
param.Add("1");
}
else if (md.FieldMeteDatas[key].ColumnName == "AddBy")
{
columns.Add("AddBy");
param.Add(string.Format("'{0}'", userName));
}
else if
。。。。。。。。。。。。。//等等




[code=csharp]

[/code]

我看得出大概是往数据库插数据的意思,但是不了解。。
数据库 SQL
[解决办法]
这段语句你要是能调试执行的话,你就会发现最终的
sql就是 insert into table (abc,def) values (@abc,@def)这样子的

然后下面是添加sqlParameter
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

能看到的都还是在构建sql字段List集合与字段对应的数据List集合

3楼是接着一大段else if后面的语句。。我就是想知道如果我要用这种方式插数据,各个语句的作用和意思。。
以前用的都是“insert table XXXXXXX”这种的sql语句然后在执行的。。


根据List的内容循环拼SQL语句和Parameter参数~


SQL不是循环拼的,是通过sql.AppendFormat("({0}) VALUES({1})", string.Join(",", columns.ToArray()), string.Join(",", param.ToArray()));
生成一条类似insert into (a,b,c,d) values(@a,@b,@c,@d)这种形式的SQL。

然后通过循环param表,为@a,@b,@c,@d这种类型的参数赋值。

读书人网 >asp.net

热点推荐