C#:如何在变量

时间:2016-07-29 05:14:06

标签: c# silverlight

我正在开发silverlight应用程序。现在,我有一个问题是将字符串变量与双引号一起传递给sql语句。我试着用这种方式:

string itemList;
string commaString = @"""";

for (int i = 0; i < TestList.Count; i++)
 {
   itemList += commaString + TestList[i].Code + commaString + " || ";
 }

itemList =“x.Code ==”+ itemList;

itemList = itemList.Removed(itemList.Length - 3);

但传递的变量是这样的:

  

“x.Code == \”11001-111001 \“|| x.Code == \”11016-111001 \“   “

我希望它是这样的:

  

x.Code ==“11001-111001”|| x.Code ==“11016-111001”

我不想要反斜杠。我想将此变量传递给sql select语句。是否有可能做到这一点?有谁能够帮我?谢谢......

***更新:

我的TestList目前有2个值:

"11001-111001"
"11016-111001"

然后我想将itemList中的这些值组合为:

  

x.Code ==“11001-111001”|| x.Code ==“11016-111001”

因为我想在sql语句中使用它。合并后,现在变为

  

“x.Code == \”11001-111001 \“|| x.Code == \”11016-111001 \“”

下面是我想如何使用变量。我想用 itemList

替换代码
private void GetAccountCodes()
{
  var r = _svc.AccountCodes.Where(x => x.Code == "11001-111001" || x.Code == "11016-111001").Select(x => x);
  _company.AccountCodes.LoadCompleted -= new EventHandler<LoadCompletedEventArgs>(AccountCodes_LoadCompleted);
  _company.AccountCodes.LoadCompleted += new EventHandler<LoadCompletedEventArgs>(AccountCodes_LoadCompleted);
  _company.AccountCodes.Clear(true);
  _company.AccountCodes.LoadAsync(r);
}

private void AccountCodes_LoadCompleted(object sender, LoadCompletedEventArgs e)
{
  if (_company.AccountCodes!= null && _company.AccountCodes.Count() > 0)
  {
     //do something. but right now it returns no record            
  }
}

2 个答案:

答案 0 :(得分:1)

编辑:

您可以使用Contains传递数据库linq查询的项目列表:

.Where(x=> itemList.Contains(x.Code)).ToList()

调试器转义字符:

至于`\&#34; part这只是显示值的调试器。

尝试点击小放大镜图标或将值打印到控制台,您将获得:

"11001-111001" || x.Code == "11016-111001" || "

将此图片视为证据:

enter image description here

这些转义反斜杠仅由调试器添加。

要添加单引号,您可以使用以下方法之一:

string commaString = " \" "

或者:

string commaString = @" "" "

答案 1 :(得分:0)

user3185569是对的。它只是显示该值的调试器。然而,以这种方式连接字符串可能不是最好的想法(记住:字符串是不可变的)。我会使用StringBuilder()和string.Format(),如下所示:

StringBuilder itemList = new StringBuilder();

for (int i = 0; i < TestList.Count; i++)
{
    itemList.Append(string.Format("\"{0}\" || ", TestList[i].Code));
}

这也提高了可读性。