フィルタはmyTicketsSubmitButtonでは機能しますが、allTicketsSubmitButtonでは機能しません。コードは同じですが、私はなぜそれが1つの方法で動作し、別の方法では動作しないのか分かりません。私は、Visual Studio 2010BindingSourceフィルタが機能しない
private void myTicketsSubmitButton_Click(object sender, EventArgs e)
{
String sqlQuery = "SELECT u.CallerName, t.* FROM users u INNER JOIN tickets t ON u.id = t.user WHERE u.CallerName = '" + Environment.UserName.ToLower() + "'";
GetData(sqlQuery);
if (myTicketsAllRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus LIKE '%'";
}
if (myTicketsClosedRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus = 'Closed'";
}
if (myTicketsOpenRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus = 'Open'";
}
}
private void allTicketsSubmitButton_Click(object sender, EventArgs e)
{
String sqlQuery = "SELECT u.CallerName, t.* FROM users u INNER JOIN tickets t ON u.id = t.user";
GetData(sqlQuery);
if (myTicketsAllRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus LIKE '%'";
}
if (myTicketsClosedRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus = 'Closed'";
}
if (myTicketsOpenRadioButton.Checked)
{
//GetData(sqlQuery);
ticketsBindingSource.Filter = "ProblemStatus = 'Open'";
}
}
private void GetData(string selectCommand)
{
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
BindingSource bindingSource1 = new BindingSource();
try
{
// Specify a connection string. Replace the given value with a
// valid connection string for a Northwind SQL Server sample
// database accessible to your system.
String connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\testdb.accdb";
// Create a new data adapter based on the specified query.
dataAdapter = new OleDbDataAdapter(selectCommand, connectionString);
// Create a command builder to generate SQL update, insert, and
// delete commands based on selectCommand. These are used to
// update the database.
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
// Populate a new data table and bind it to the BindingSource.
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource1.DataSource = table;
ticketsBindingSource = bindingSource1;
// Resize the DataGridView columns to fit the newly loaded content.
//ticketsDataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
ticketsDataGridView.DataSource = bindingSource1;
}
catch(OleDbException)
{
MessageBox.Show("To run this example, replace the value of the connectionString variable with a connection string that is valid for your system.");
}
}
でのWinFormsとC#を使用しています
私は6つのラジオボタンを持っています。 allTicketsのためにそれらの
3はmyTickets --open --Closed それらの--All
3のためのものです --open --Closed - すべて
I myTicketsグループのラジオボタンをクリックするとすべて動作します
私はコードに少し変更を加えましたが、allTicketsSubmitButtonはOpenまたはAllチケットのすべてのチケットを表示しません。
データベースは比較的小さいので、私はすぐに物事をテストできます。
私は5つのエントリ 2開き2が他のユーザに割り当てられている進捗
2エントリ内 1作業を閉じている(したがって、それらの3がmyTicketsあります)。
私は1つが開いている場合 (オープンはオープンチケットの一覧が表示されます両方)私は同じことに
をmyTicketsとallTicketsのラジオボタンを設定した場合にのみ、奇妙な
何か結果が表示され、正しくに気づき、もう1つは閉じても何も起こらない
働いていないでしょうか?エラーが出ていますか?データがグリッドを満たしていますか? – Taryn