问题遇到的现象和发生背景
如何实现使用数组来读取SqlDataReader中的数值?C#操作SQL数据库,数据库有X11和Y11两列若干对坐标值,想查找出读出给定X11=285,与285数大小相邻的两个X11和Y11,如这里a=285,想查找到数据库中X11=275,对应的Y11,X11=300,对应的Y11,这四个值。
问题相关代码,请勿粘贴截图
float a = 285;
string conStr = "server=DESKTOP-VAS78Q7\\SQLEXPRESS;database=db_test;uid=sa;pwd=123"; //连接字符串
SqlConnection conn = new SqlConnection(conStr);
conn.Open();
string sql = "(select * from (select top 1 * from T4 where X11 < '" + a + "' order by X11 desc) tt1) union (select * from (select top 1 * from T4 where X11 > '" + a + "' order by X11) tt2)";
SqlCommand Cmd = new SqlCommand(sql, conn);
SqlDataReader db = Cmd.ExecuteReader();
//// 以粗体显示标题
//label17.Text = "<b>X11 Y11</b><br>";
//// 循环读取结果集
while (db.Read())
{
// // 读取两个列值并输出到Label中
label17.Text += db["X11"] + " " + db["Y11"] + "<br>";
}
//// 关闭DataReader
db.Close();
//double x11[]=new double[1];
//if (db.Read())
//{
// double x11[] = Convert.ToDouble(db["X11"]);
// double y11 = Convert.ToDouble(db["Y11"]);
// conn.Close();
//}
运行结果及报错内容
以上方法实现了利用label控件显示出这4个数值,我想把这四个值写入数组中,而不是使用label控件显示(主要是为了验证查找这4个数值功能正常)
我的解答思路和尝试过的方法
利用 while (db.Read())实现了功能,但是想用if (db.Read())(看最后一部分注释掉的代码)把这四个值写入数数组中,目前只能写入一对X11和Y11。
我想要达到的结果
利用上面最后一部分注释掉的代码实现 double x11[]和double y11[]两个数组或者一个二维数组中,实现读取存储这4个数值。