这就是我的代码的真实外观和执行方式。我一直在尝试根据我从数据库中填充的组合框来过滤数据,然后在datagridview上显示数据。因为我是编码的初学者,所以编写组合框填充代码真的很难。我真的在互联网上搜索,阅读大部分标题。完成所有选择后是否有任何方法可以执行此操作,并且可能在文本框中写入文本并且根据以下方式单击搜索按钮(我创建) 选择datagridview显示。
这是我的用户界面。我正在使用Visual Studio Professional 2013.请用非常基本的句子向我解释。我想学习逻辑,代码背后的结构。
答案 0 :(得分:0)
如果您想根据您在文本框中输入的文字过滤网格视图,可以参考我的博客文章
http://dotnetsolutionsbyankit.blogspot.in/2013/04/filter-gridview-as-you-type-in-textbox.html
所以你会知道如何做到这一点。
如果您遇到任何问题,请在评论中告诉我。
答案 1 :(得分:0)
public static DataSet SQLGetData(string connectionString, string commandString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet DS = new DataSet();
DataTable DT = new DataTable("Table1");
try
{
connection.Open();
SqlCommand command = new SqlCommand(commandString, connection);
//command.CommandTimeout = 3000;
SqlDataReader read = command.ExecuteReader();
DS.Tables.Add(DT);
DS.Load(read, LoadOption.PreserveChanges, DS.Tables[0]);
}
catch (SqlException e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
finally
{
connection.Close();
}
return DS;
}
}
private void SetFilter()
{
string command = "SELECT * FROM Store";
int count = 0;
if (comboBox1.Text != "")
{
command = command + " WHERE GroupN = '" + comboBox1.Text + "'";
count = count + 1;
}
if (comboBox2.Text != "")
{
if (count == 0)
{
command = command + " WHERE Tech_Area = '" + comboBox2.Text + "'";
}
else
{
command = command + " AND Tech_Area = '" + comboBox2.Text + "'";
}
count = count + 1;
}
if (comboBox3.Text != "")
{
if (count == 0)
{
command = command + " WHERE LevelOf = '" + comboBox3.Text + "'";
}
else
{
command = command + " AND LevelOf = '" + comboBox3.Text + "'";
}
count = count + 1;
}
// comboBox4, comboBox5, comboBox6
string connStr; //Connection string;
DataSet DS = new DataSet();
DS = SQLGetData(connStr, command);
DataGridView1.DataSource = DS.Tables[0];
}