當前位置:首頁 » 編程語言 » sqltextupdate
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqltextupdate

發布時間: 2023-01-30 18:34:28

A. C#中有沒有類似於SQL中的%那種通配符, 怎麼在C#中實現模糊搜索(不用資料庫

1.用一個List<string> listOnit存放初始化數據,用一個List<string> listNew存放輸入key之後,返回的數據。

2.用上面的listOnit初始化ComboBox數據源進行綁定。

3.在TextUpdate方法內部,添加實現方法。

首先進入方法,先清除ComboBox的內容,然後將輸入的內容去listOnit初始化的數據中比對,找出對應數據,然後放入listNew存放數據,最後將listNew數據重新賦值給ComboBox。

後台代碼實現:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceTimerDemo

{

publicpartialclassForm2 : Form

{

//初始化綁定默認關鍵詞(此數據源可以從資料庫取)

List<string> listOnit = newList<string>();

//輸入key之後,返回的關鍵詞

List<string> listNew = newList<string>();

publicForm2()

{

InitializeComponent();

}

privatevoidForm2_Load(objectsender, EventArgs e)

{

//調用綁定

BindComboBox();

}

/// <summary>

/// 綁定ComboBox

/// </summary>

privatevoidBindComboBox()

{

listOnit.Add("張三");

listOnit.Add("張思");

listOnit.Add("張五");

listOnit.Add("王五");

listOnit.Add("劉宇");

listOnit.Add("馬六");

listOnit.Add("孫楠");

listOnit.Add("那英");

listOnit.Add("劉歡");

/*

* 1.注意用Item.Add(obj)或者Item.AddRange(obj)方式添加

* 2.如果用DataSource綁定,後面再進行綁定是不行的,即便是Add或者Clear也不行

*/

this.comboBox1.Items.AddRange(listOnit.ToArray());

}

privatevoidcomboBox1_TextChanged(objectsender, EventArgs e)

{

/*

* 不能用TextChanged操作,當this.comboBox1.DroppedDown為True時,選擇項上下鍵有沖突

*/

}

privatevoidcomboBox1_TextUpdate(objectsender, EventArgs e)

{

//清空combobox

this.comboBox1.Items.Clear();

//清空listNew

listNew.Clear();

//遍歷全部備查數據

foreach(varitem inlistOnit)

{

if(item.Contains(this.comboBox1.Text))

{

//符合,插入ListNew

listNew.Add(item);

}

}

//combobox添加已經查到的關鍵詞

this.comboBox1.Items.AddRange(listNew.ToArray());

//設置游標位置,否則游標位置始終保持在第一列,造成輸入關鍵詞的倒序排列

this.comboBox1.SelectionStart = this.comboBox1.Text.Length;

//保持滑鼠指針原來狀態,有時候滑鼠指針會被下拉框覆蓋,所以要進行一次設置。

Cursor = Cursors.Default;

//自動彈出下拉框

this.comboBox1.DroppedDown = true;

}

}

}

實現效果截圖:

從左到右模糊查詢:(例如輸入:張)

可以得出正常模糊查詢的結果。

從左到右模糊查詢(例如輸入:三)

實現過程中的問題:

1.綁定數據一開始用的DataSource方式,但是寫到下面重新給ComboBox設置數據源的時候,報錯:不能為已經設置DataSource的combobox賦值。

解決方式:將賦值方式改為:Item.Add(obj)或者Item.AddRange(obj)方式

2.下拉框的內容一直在增加

解決方式:當文本框文本改變時,清空下拉框的內容,然後再添加數據。

3.輸入文本改變時,沒有自動彈出下拉框顯示已經查詢好的數據。

解決方式:設置comboBox的DroppedDown 屬性為True。

4.ComboBox文本框改變事件一開始選擇用的是TextChanged事件,但是當在界面用 上 下鍵盤選擇時,出現bug,不能進行選擇。

解決方式:將文本框改變事件換為TextUpdate事件,然後添加實現方法。

5.當在ComboBox輸入內容時,內容文本是倒序輸出的,游標位置始終在最前面。

解決方式:設置游標的顯示位置,this.comboBox1.SelectionStart = this.comboBox1.Text.Length;

6.輸入內容改變時,用滑鼠選擇下拉列表項的時候,滑鼠指針消失,被下拉框覆蓋掉。

解決方式:設置滑鼠狀態為一開始的默認狀態,Cursor = Cursors.Default;

B. DropDownList 實現聯動效果

資料庫存儲方式:
比如 國家地區
id name pid
1 中國 0
2 美國 0
3 北京 1
4 加州 2
5 上海 1
6 紐約 2
//pid這個就是國家地區的父ID

查詢方式:
第一個list查詢pid為0的數據載入到列表中,順便把id也存一份在列表的值里。

選擇事件:
第一種前台的,比如javascript或jquery:
當list的值變更時觸發事件ajax-get-json,獲取資料庫中pid為list值為id(之前存的)的數據,javascript處理json數據載入到第二個list

第二種後台的,aspx.cs
綁定第一個list的事件並且回發,獲取數據與第一種就一樣了。

具體代碼很簡單了,在參考一下網上的例子,非常好寫,祝你成功, 呵呵。