所以基本上我的sql表名为" Table1"其中有列-nvar(10)名称,浮点值和nvar(50)日期,所以3列 - "名称" "值" "日期&#34 ;.
我有textbox1和listbox1
所以基本上我想在listbox1中显示与texbox1值匹配的表数据。所以textbox1是搜索区域,结果显示在列表框中。
我想制作布尔函数,如果textbox1的值与表列中的任何行匹配,则返回true,并为每列中的每一行调用此函数。
类似的东西(遍历表格列和表格行)
protected void Box3_TextChanged(object sender, EventArgs e)
{
string txt = Box3.Text.ToString();
foreach (clmn in Tablename.columns){
foreach(row in Tablename.Rows){
if(GetSearchResults(txt))
{
ListBox1.add(txt);
}
}
}
}
和GetSearchResults之类的东西
public Boolean GetSearchResults(string text) {
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["FatherDB"].ConnectionString;
connection.Open();
SqlCommand sqlCmd = new SqlCommand("SELECT *FROM Table1 WHERE Name Like '%@text%' OR Value Like '%@text%'", connection);
SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
sqlCmd.Parameters.AddWithValue("@text", text);
/code here..
return true;
}
我还考虑用所有表数据填充不可见的Listbox2,然后在Listbox2中搜索而不是SQL搜索
答案 0 :(得分:1)
这是一般的想法......
ListBox lb = new ListBox();
string connectionString = "your connection string here";
using (SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
string query = "SELECT Name + ' ' + cast(Date as varchar(20))+' '+ cast(Value as varchar(20)) as 'Text' FROM MyTable";
using (SqlCommand cmd = new SqlCommand(query, con))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read()) {
lb.Items.Add(new ListItem((string)reader["Text"]));
}
}
}
}