使用 Parameters.Add() 将文本追加到 sql 字段

本文关键字:追加 sql 字段 文本 Parameters Add 使用 | 更新日期: 2024-11-07 09:07:49

任何人都可以帮忙吗?我有一个包含三个字段的表,一个字段金额、最新更新和注意,我想使用参数更新三个字段以避免任何 sql 注入。我需要有关使用参数以正确方式编写它们的帮助。添加()。这是代码。

com.CommandText = "update tblStore set Amount=Amount + @amount, LatestUpdate=@latestUpdate, Notes = convert(nvarchar(4000),@notes) + '. " + item.notes + "' WHERE ID=1";
com.Parameters.Add("@amount", item.amount.ToString());
com.Parameters.Add("@latestUpdate", item.fuelingDate.ToString());
com.Parameters.Add("@notes", item.notes.ToString());

使用 Parameters.Add() 将文本追加到 sql 字段

你快到了。你想要类似的东西

com.Parameters.Add("@amount", SqlDbType.Int).Value = item.amount;;
com.Parameters.Add("@latestUpdate", SqlDbType.DateTime).Value = item.fuelingDate;;
com.Parameters.Add("@notes", SqlDbType.NVarChar).Value = item.notes;

不要忘记包括using System.Data;

您需要添加参数以及 SqlDBType。不要使用 AddWithValue 方法,因为有几篇文章提到它不是很安全。我会使用以下方法:

com.CommandText = "update tblStore set Amount=Amount + @amount, LatestUpdate=@latestUpdate, Notes = @notes WHERE ID=1";
SqlParameter parameter = new SqlParameter("@amount",  System.Data.SqlDbType.Int);
parameter.Value = item.amount;
com.Parameters.Add(parameter);
parameter = new SqlParameter("@latestUpdate", System.Data.SqlDbType.DateTime);
parameter.Value = item.fuelingDate;
com.Parameters.Add(parameter);
parameter = new SqlParameter("@notes", System.Data.SqlDbType.NVarChar);
parameter.Value = item.notes;
com.Parameters.Add(parameter);

--更新--

要更新注释而不是覆盖,只需更改命令文本:

com.CommandText = "update tblStore set Amount=Amount + @amount, LatestUpdate=@latestUpdate, Notes = Notes + @notes WHERE ID=1";
这是

最终有效的代码,我正在分享它,以防其他人需要它。谢谢大家的帮助。

com.CommandText = "update tblStore set Amount=Amount + @amount, LatestUpdate=@latestUpdate, Notes = convert(nvarchar(4000),Notes) + '.' + @notes WHERE ID=1";
                com.Parameters.Add("@amount", SqlDbType.Int).Value = item.amount; ;
                com.Parameters.Add("@latestUpdate", SqlDbType.DateTime).Value = item.fuelingDate; ;
                com.Parameters.Add("@notes", SqlDbType.NVarChar).Value = item.notes;

你在找这个吗?

com.CommandText = "update tblStore set Amount=Amount + @amount,
LatestUpdate=@latestUpdate, Notes = convert(nvarchar(4000),@notes) + '. " +
item.notes + "' WHERE ID=1";
com.Parameters.AddWithValue("@amount", item.amount.ToString());
com.Parameters.AddWithValue("@latestUpdate", item.fuelingDate.ToString());
com.Parameters.AddWithValue("@notes", item.notes.ToString());