【发布时间】:2014-10-28 16:41:20
【问题描述】:
我有一个带有 cmets 的 MySQL 数据库,并且我已经使用这个函数在我的 dataGridView_flaggedComments 中填写了带有标记的 cmets:
private void button_Search1_Click(object sender, EventArgs e)
{
commentCount = 0;
//comboBox_stockIndex.SelectedIndex = 0;
richTextBox_flaggedComments.Clear();
dataGridView_flaggedComments.Refresh();
DataTable flaggedcomments = new DataTable("flaggedcomments");
using (MySqlConnection sqlConn = new MySqlConnection(strProvider))
{
using (MySqlDataAdapter da = new MySqlDataAdapter("SELECT Comment_ID, Comments_Date, Author, Title, Comments_Comment, Tickers_Ticker_ID FROM comments ORDER BY Comments_Date ASC", sqlConn))
{
da.Fill(flaggedcomments);
}
}
StringBuilder sb = new StringBuilder();
string[] words = File.ReadAllLines(sourceDirTemp + comboBox_crimeKeywords.SelectedItem.ToString() + ".txt");
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();
}
dataGridView_flaggedComments 中出现的标记 cmets 属于不同的股票价格(每只股票都有其唯一的代码和 Ticker_ID)。我正在尝试过滤当前的dataGridView_flaggedComments,以便它只显示我从comboBox_stockIndex 中选择的内容。
但是,我的代码会以某种方式从数据库中检索此特定符号的所有 cmets,而不是过滤 dataGridView_flaggedComments 中的内容。谁能指出哪里出了问题?
我在 SO 遇到了很多问题,但无法真正联系起来。这是我的代码,如果我能得到一些帮助将不胜感激!谢谢!
private void comboBox_stockIndex_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable link_stockIndex = new DataTable("link_stockIndex");
using (MySqlConnection sqlConn = new MySqlConnection(strProvider))
{
using (MySqlDataAdapter da = new MySqlDataAdapter("SELECT Ticker_ID, Symbol FROM tickers", sqlConn))
{
da.Fill(link_stockIndex);
}
}
foreach (DataRow da in link_stockIndex.Rows)
{
for (int i = 0; i < dataGridView_flaggedComments.Rows.Count - 1; i++)
{
if (dataGridView_flaggedComments.Rows[i].Cells["Tickers_Ticker_ID"].Value.ToString() != "" && comboBox_stockIndex.SelectedItem.ToString() == da["Symbol"].ToString())
{
(dataGridView_flaggedComments.DataSource as DataView).RowFilter = string.Format("Tickers_Ticker_ID = '{0}'", da["Ticker_ID"]);
}
}
}
}
【问题讨论】:
标签: c# mysql datagridview filter dataview