首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求教以次代码的作用

2013-08-21 
求教以下代码的作用private Command BuildInsertCommand(string userName, MetaData md, FieldValueCollec

求教以下代码的作用

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这种类型的参数赋值。

热点排行