【问题标题】:how to save string variable with apostrophe using .net如何使用.net用撇号保存字符串变量
【发布时间】:2015-05-17 13:06:58
【问题描述】:

我有一个这样的查询:

sql = "Select * From T_ExhibitorLocation 
        where F_ExhibitionCode='" & Cmb_Exhibition.SelectedValue.ToString & "' 
          and F_ExhibitorCode='" & Trim(Txt_ExhibitorID.Text) & "' 
          and F_Site='" & cmb_Site.SelectedValue.ToString &` "'"

有时我的 F_site 名称带有撇号, 像这样的例子 'Artist's Shell'。所以这次我怎么能用撇号保存这个名字??提前致谢

【问题讨论】:

  • 不要那样构建 sql。使用 SQL 参数,SQL 将更具可读性,并且刻度问题将消失。
  • 加SQL参数会prevent sql injection

标签: c# sql vb.net


【解决方案1】:

就像 Pluntonix 在他的评论中所说,总是尽量避免以这种方式构建 sql 命令。如果可以,请尝试以下方式

var command = new SqlCommand("Select * From T_ExhibitorLocation 
        where F_ExhibitionCode=@Cmbexhibition 
          and F_ExhibitorCode=@exhibitioncode
          and F_Site=@site");
SqlParameter param1  = new SqlParameter();
param1.ParameterName = "@Cmbexhibition";
param1.Value         = Cmb_Exhibition.SelectedValue.ToString();

SqlParameter param2  = new SqlParameter();
param2.ParameterName = "@exhibitioncode";
param2.Value         = Trim(Txt_ExhibitorID.Text);

SqlParameter param3  = new SqlParameter();
para3.ParameterName = "@site";
param3.Value         =cmb_Site.SelectedValue.ToString();

command.Parameters.Add(param1);
command.Parameters.Add(param2);
command.Parameters.Add(param3);

然后执行。

【讨论】:

  • 我宁愿创建类型化参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2023-03-14
  • 2017-01-30
  • 1970-01-01
相关资源
最近更新 更多