0
我有一個datagridview,我想要顯示數據庫中的數據。但我不希望它顯示所有的數據。我希望它僅顯示特定ID的數據。這意味着如果用戶輸入3 ID,它將顯示該3 ID的信息。因此,我想使用富文本框作爲過濾器,以便用戶可以在富文本框中爲每行輸入多個ID。用戶可以在富文本框中輸入ID號,並將數據用作過濾器來顯示該特定ID的數據。但是我無法讓它超出富文本框的第一行。如果我在第一行中只輸入一個ID,它可以很好地工作,但如果我在第二行或第三行輸入第二個ID,則它不會顯示任何內容。我嘗試使用for循環來閱讀富文本框的每一行,但它不起作用。任何建議或解決方案? 這裏是我的代碼:如何使用從富文本框輸入的文本過濾datagridview?
namespace TrackCon
{
public partial class trackInput : Form
{
public trackInput()
{
InitializeComponent();
}
/*private void trackInput_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'trackingBMSDATADataSet.BRDATA' table. You can move, or remove it, as needed.
this.bRDATATableAdapter.Fill(this.trackingBMSDATADataSet.BRDATA);
}*/
private void trackBtn_Click(object sender, EventArgs e)
{
RichTextBox dynamicRichTextBox = new RichTextBox();
DataTable dt = null;
string connoInput = richTextBox1.Text;
string conString = Properties.Settings.Default.BMSDATAConnectionString;
//string[] RichTextBoxLines = dynamicRichTextBox.Lines;
foreach (char line in richTextBox1.Text)
{
using (SqlCeConnection con = new SqlCeConnection(@"Data Source=C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\TrackCon\TrackCon\BMSDATA.sdf;Persist Security Info = True;Password=xxxx"))
{
con.Open();
SqlCeCommand com = new SqlCeCommand("SELECT conno,cmpsno,ctrx,dsysdate,cstnno,corigin FROM BRDATA WHERE conno = '" + richTextBox1.Text + "'OR cmpsno = '" + richTextBox1.Text + "'", con);
SqlCeDataAdapter adap = new SqlCeDataAdapter(com);
DataSet set = new DataSet();
adap.Fill(set);
if (set.Tables.Count > 0)
{
dt = set.Tables[0];
}
dataGridView1.DataSource = dt;
con.Close();
}
}
}
}
}
我需要把它放在一個for循環或者if else,因爲我想將文本框中的值傳遞給過濾器查詢。 – 2012-03-26 06:49:07
更新了我的答案 – Bas 2012-03-27 13:43:38