加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#SqlParameters Short Hand

发布时间:2020-12-16 03:19:08 所属栏目:百科 来源:网络整理
导读:我正在获取一个记录对象列表中的数据并将其内容放入数据库中: // Processes a Record and adds it to the databasepublic bool addRecord(SqlConnection db,ListRecord recordsToAdd){ using (SqlCommand command = db.CreateCommand()) { foreach (Record
我正在获取一个记录对象列表中的数据并将其内容放入数据库中:
// Processes a Record and adds it to the database
public bool addRecord(SqlConnection db,List<Record> recordsToAdd)
{
    using (SqlCommand command = db.CreateCommand())
    {
        foreach (Record record in recordsToAdd)
        {
            // Set the query command text
            command.CommandText = @"INSERT INTO SMDGROUP_STPRODMASTER (PRODCODE,TOTFREE,TOTPHYS,ITEMTYPE,PRODESC) VALUES ('@PRODCODE','@TOTFREE','@TOTPHYS','@ITEMTYPE','@PRODESC')";

            SqlParameter param1 = new SqlParameter("@CURSTAT",record.curstat);
            SqlParameter param2 = new SqlParameter("@ITEMDESC",record.itemdesc);
            SqlParameter param3 = new SqlParameter("@PRODCODE",record.prodcode);
            SqlParameter param4 = new SqlParameter("@TOTFREE",record.totfree);
            SqlParameter param5 = new SqlParameter("@TOTPHYS",record.totphys);
            SqlParameter param6 = new SqlParameter("@ITEMTYPE",record.itemtype);
            SqlParameter param7 = new SqlParameter("@PRODESC",record.proddesc);

            command.Parameters.Add(param1);
            command.Parameters.Add(param2);
            command.Parameters.Add(param3);
            command.Parameters.Add(param4);
            command.Parameters.Add(param5);
            command.Parameters.Add(param6);
            command.Parameters.Add(param7);

            // Execute the query
            command.ExecuteNonQuery();
        }
        return true;
    }
}

这是我的记录类:

class Record
{
    public string curstat { get; set; }
    public string itemtype { get; set; }
    public string itemdesc { get; set; }
    public string prodcode { get; set; }
    public string proddesc { get; set; }
    public string totfree { get; set; }
    public string totphys { get; set; }
}

只是从代码看,我有一种感觉,有一个较短的方法来实现这一点.

但其次,我甚至不确定我是否正确地完成了@PARAMETER值的替换.

如果我查看命令的内容,它仍然显示带有@参数的查询字符串.

另外,我在command.ExecuteNonQuery()上得到这个错误:

String or binary data would be truncated.

The statement has been terminated.

所以我的问题是:

>有更短的方法来设置和添加多个参数的查询?
>可能会导致错误?

解决方法

你有一个更大的构造函数:
command.Parameters.Add(
    "@CategoryName",SqlDbType.VarChar,80).Value = "toasters";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读