以下是數據庫中二進制搜索的代碼。數據變量本身取錯值
int beg, mid, count = 0;
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\Dictionary.mdf;Integrated Security=True;User Instance=True";
SqlCommand cmd = new SqlCommand("select max(SNo) from WordList ", con);
con.Open();
SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
int end;
while (dr.Read())
{
end = Convert.ToInt32(dr.GetValue(0));
}
con.Close();
beg = 0;
mid = (beg + end)/2;
while (beg <= end)
{
我的數據庫裏有140280個單詞。
問題是如果變量值> 10958,變量'end'本身被2除以本身。
誰能告訴,這是什麼問題?
如果你在'con.Close()'行放置了一個斷點,那麼'end'有什麼值? –
@adamV在con.close()結尾的值是正確的,之後出現錯誤。 –
然後您沒有顯示足夠的代碼;你的代碼中沒有一個顯示'end'被超出該行改變。 –