好.我使用C#编程语言访问一个简单的数据库(在Microsoft SQL Server上)
目前,我正在使用DataReader对象来访问数据库.所以这是我的问题:是否可以对特定的数据进行二进制搜索(在C#中),以便我可以更快地进行搜索?
目前,我正在使用一个简单的while循环来搜索数据库的内容.我相信这是按顺序完成的.
while (pReader.Read()) { if ((String)pReader["theData"] == "The_thing_im_searching_for") break; }
那么有没有办法进行二分搜索?
如果您仍在使用数据库,则应编写一个select语句来搜索您要查找的内容,而不是手动迭代数据库.没有理由重新发明轮子.
正如Donnie所指出的,如果您在SQL中表达谓词,数据库将选择自动提取数据的最有效方法.
试试这个:
string sql = "SELECT * FROM Foo WHERE theData = 'The_thing_im_searching_for'" SqlDataAdapter adapter = new SqlDataAdapter(sql); DataTable table = new DataTable(); adapter.Fill(table); foreach(DataRow row in table.Rows) { // Do whatever you want here }