循环遍历单词/短语列表,与数据库表行匹配
本文关键字:数据库 单词 遍历 短语 列表 循环 | 更新日期: 2023-09-27 18:09:55
我有一个。txt中的单词/短语列表(每个单词/短语在新行中),我想循环遍历每个单词/短语并检查这些单词/短语是否出现在评论表的第6列中。我无法解决下面的代码,没有出现在我的datagridview尽管有匹配的"关键字",有人可以审查/纠正我的代码吗?谢谢你。
private void button_Search1_Click(object sender, EventArgs e)
{
DataTable flaggedcomments = new DataTable("flaggedcomments");
using (MySqlConnection sqlConn = new MySqlConnection(strProvider))
{
using (MySqlDataAdapter da = new MySqlDataAdapter("SELECT Comment_ID, Comments_Date, Comments_Time, Author, Title, Comments_Comment FROM comments ORDER BY Comments_Date ASC, Comments_Time ASC", sqlConn))
{
da.Fill(flaggedcomments);
}
}
string[] words = File.ReadAllLines(sourceDirTemp + "a_list_of_words_and_phrases.txt");
foreach (DataRow da in flaggedcomments.Rows)
{
string itemComments = da[5].ToString();
if (words.Any(wordOrPhrase => Regex.IsMatch(itemComments, @"'b" + Regex.Escape(wordOrPhrase) + @"'b", RegexOptions.IgnoreCase)))
{
dataGridView_flaggedComments.Rows.Add(da);
string itemTitle = da[4].ToString();
string itemDate = da[1].ToString().Replace(" 12:00:00 AM", "");
string itemTime = da[2].ToString();
string itemAuthor = da[3].ToString();
string itemCommentID = da[0].ToString();
richTextBox_flaggedComments.AppendText("Date: " + itemDate + "'nTime: " + itemTime + "'nCommenter: " + itemAuthor + "'nTitle: " + itemTitle + "'nDescription: " + itemComments + "'nComment ID: " + itemCommentID + "'n'n--------'n'n");
}
}
}
我认为Rows.Add(da)
行会起作用,但是当我单击按钮时,它给了我错误,说没有行可以添加到没有列的datagridview控件。
示例"Comments_Comment"为
在监管机构批准其收购Scottish Widows Investment Partnership后,安本资产管理公司(Aberdeen Asset Management)将发布截至2月28日的两个月交易更新。分析师预期:"我们预计未来两个月管理的资产规模为 163,1880亿美元,较第一季度减少3%。"
如何使用数据绑定,而不是尝试向gridview添加行。您可以这样替换代码中的foreach
:
var query = flaggedcomments.AsEnumerable().Where(r =>
words.Any(wordOrPhrase => Regex.IsMatch(r.Field<string>("Comments_Comment"), @"'b" + Regex.Escape(wordOrPhrase) + @"'b",
RegexOptions.IgnoreCase)));
dataGridView_flaggedComments.DataSource = query.AsDataView();
你需要在你的visual studio项目中有一个System.Data.DataSetExtensions.dll的引用来完成这项工作。