Ниже приведен код для двоичного поиска в базе данных.Перечисление переменных данных не соответствует самому значению
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 слов.
проблема заключается в том, что переменная «конец» сама по себе делится на 2, если ее значение составляет> 10958.
Может ли кто-нибудь сказать, в чем проблема?
Если вы установили точку останова на строку 'con.Close()', какое значение имеет значение 'end' в это время? –
@AdamV at con.close() значение конца правильное, после чего что-то не получается. –
Тогда вы не показываете достаточно кода; ни один из ваших кодов не показывает, что «конец» изменяется за пределами этой строки. –