数据变量选择错误的值本身

时间:2014-01-21 17:18:37

标签: c# asp.net sql-server

以下是数据库中二进制搜索的代码。

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个单词。

问题是变量'end'本身如果其值> 10958则自己除以2。

任何人都可以说,问题是什么?

1 个答案:

答案 0 :(得分:1)

  

我的数据库中有140280个单词。

我想您希望获得count而不是MAX,您在end中获得的值是该字段的最大值(SNo)。更改您的查询以获取COUNT(SNo)

SqlCommand cmd = new SqlCommand("select COUNT(SNo) from WordList ", con);

还可以使用SqlCommand.ExecuteScalar方法获取单个值。考虑在using语句中包含连接对象和命令对象。

int end = (Int32)cmd.ExecuteScalar();