日期:2014-05-18  浏览次数:20901 次

C# while (myReader.Read())读数据库字段问题 <紧急求助>
求高手帮忙: 以下的这段代码是我要实现读取数据库字段内容,设置断点调试的结果是直接跳过while (myReader.Read()),不知道是怎么回事???

string name;
string date;
string Nums,PNum;
PNum = "";
Nums = ULPcombo.Text;
date = SailingTime.Value.ToString("yyyyMMdd");
name = "Orders" + date;
SqlConnection myCon = dataBase.CreateConnection();
String strSql = "select DISTINCT 卸箱港 from " + name + " where 港序 = '" + radioButton1.Text + "'";
SqlCommand strCom = new SqlCommand(strSql, myCon);
myCon.Open();
SqlDataReader myReader;
 myReader = strCom.ExecuteReader();
String StrName = "";
while (myReader.Read())
{
  StrName = myReader["卸箱港"].ToString();
  PNum = StrName;
}

说明:在数据库的表是存的是货单,货单里有货号、装箱港、卸箱港、卸箱港港序,主键为货号。

要实现的功能是为卸箱港设置港序,判断某一港序是否已经被设置过……
例如要设置某港港序为1,首先判断有没有港序为1的卸箱港,若有则MessageBox.Show(""); 若无则设置。

------解决方案--------------------
直接跳过说明 while()条件为 false ,没有读到数据!你先用 sql 语句测试一下 有没有数据! 如果只是查询一条数据的话,尽量把 while改成 if
------解决方案--------------------
说明,该sql语句一条记录也没出来。可能是where条件部分不正确。
------解决方案--------------------
你利用数据库设计器设计出来自动生成SQL语句,按照它改改就行了
String strSql = "select DISTINCT 卸箱港 from " + name + " where 港序 ='" + radioButton1.Text + "'";

你将name改一个具体的名字试试,可能是这里出错了
------解决方案--------------------
name 和radioButton1.Text都带入具体值进去试试咯,应该是这两个地方没错的
------解决方案--------------------
把String strSql = "select DISTINCT 卸箱港 from " + name + " where 港序 = '" + radioButton1.Text + "'";
改为String strSql = "select DISTINCT 卸箱港 from " + name ;看有数据否?

------解决方案--------------------
加上断点试试,看看你得出Sql语句是否有错误,弄到数据库中执行一下,看有没有结果!
应该是没有数据的问题!