c# - 在将连接字符串作为查询字符串传递后,SqlDataAdapter 查询不起作用,这是怎么回事?
问题描述
我正在使用 C# 和 SQL Server 2014 创建桌面应用程序。在我SqlDataAdapter
的 中,将连接字符串作为变量传递后,SQL 查询不起作用。如果我将查询写为直接字符串 - 它工作正常。但是手动输入 100 多个标签是愚蠢的。我还想不通 - 我的代码有什么问题?
// block 17. created for splitting unique word from whole user tag text and searching with this tags in database; it returns a unique word!
String Input = search.Text;
Input = Input + " ";
String[] Word_Box = new String[1000];
String Word = "";
int T = 0, Len;
Len = Input.Length;
bool flag = false;
for (int i = 0; i < Len; i++)
{
if (Input[i] != ' ')
{
Word = Word + Input[i];
flag = true;
}
else if (Input[i] == ' ' && flag == true)
{
Word_Box[T++] = Word;
Word = "";
flag = false;
}
}
// block end
// block 18. start for adjusting SQL query string for searching purpose :)
String Query_String;
Query_String = "select * from Tbl_Test3 where";
int WordCount = T - 2;
for (int i = 0; i < T; i++)
{
Query_String = Query_String + " Tags like '%\"+ \""+ Word_Box[i] +"\" + \"%' ";
if (i <= WordCount)
{
Query_String += "OR ";
}
}
// block end
con.Open();
//Query_String = "select * from Tbl_FinalTest3 where Tags like '%"+ "Codeforces" + "%' OR Tags like '%"+ "Topcoder" + "%' ";
SqlDataAdapter adpt = new SqlDataAdapter(Query_String, con);
DataTable dt = new DataTable();
adpt.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
没有显示错误,执行后,datagridview 不显示任何数据,直接字符串的相同输出完美显示。
我对那条线毫无疑问,那有什么问题?
Query_String = Query_String + " Tags like '%\"+ \""+ Word_Box[i] +"\" + \"%' ";
谢谢:)
解决方案
根据@Venkataraman R 的评论-我解决了这个问题。以前不知道这件事。它将对我们许多人有用。最后,它可以很好地与-
Query_String = Query_String + $" Tags like '%{Word_Box[i]}%' ";
推荐阅读
- visual-studio - 从 Visual Studio 2019 中选择或更改 APK V1 签名方案
- javascript - 如何使用 JS/JQ/ 从 Marquee 获取值以显示在标签中
- java - 保持文件夹结构完整 Zip 任务 (Ant)
- javascript - 从 txt 或 json 文件向 js 脚本添加值
- c# - ASP.NET Core 3.1“无法从根提供程序解析范围服务。”
- python-3.x - Discord.py:MissingRequiredArgument:self 是缺少的必需参数
- python - 如何在函数中访问fastapi中间件中定义的request_id
- php - 如何通过woocommerce中的属性获取变体ID
- reactjs - 在 React 中将函数从祖父母传递给孙子孙女
- swift - 尝试使用 AVCapturePhotoOutput 时“没有活动和启用的视频连接”