DataReader怎样判断是否为空啊?

greenhill 2003-08-19 11:39:10
我的程序因为DataReader读出的数据为空而出错,因为我的数据库里面没有数据,我想加个判断语句,判断datareader是否为空数据,请问怎样判断??
...全文
327 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dding_ch 2003-08-19
  • 打赏
  • 举报
回复
SqlCommand thisCommand=thisConnection.CreateCommand();
thisCommand.CommandText="SELECT * FROM 班级";
//把数据访问放到try ... catch ... 里,看看是否有异常抛出
try
{
SqlDataReader thisReader=thisCommand.ExecuteReader();
while(thisReader.Read())
{
if(thisReader["年级"].ToString().Trim()==comboBox1.Text.Trim() && thisReader["班级名称"].ToString().Trim()==textBox1.Text.Trim())
{
MessageBox.Show("该班已存在!");
i=0;
thisReader.Close();
thisConnection.Close();
break;
}
else
{
i=1;
}
}

thisReader.Close();

if(i==1)
{
SqlDataAdapter thisAdapter=new SqlDataAdapter("SELECT * FROM 班级",thisConnection);
SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter);

DataSet thisDataSet=new DataSet();

thisAdapter.Fill(thisDataSet,"班级");

DataRow thisRow=thisDataSet.Tables["班级"].NewRow();
thisRow["年级"]=comboBox1.Text.Trim();
thisRow["班级名称"]=textBox1.Text.Trim();
thisRow["人数"]="0";
thisRow["班主任"]=textBox2.Text.Trim();
thisRow["班主任手机"]=textBox3.Text.Trim();

thisDataSet.Tables["班级"].Rows.Add(thisRow);

thisAdapter.Update(thisDataSet,"班级");

thisConnection.Close();

MessageBox.Show("修改成功!");

this.Close();
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
maregister 2003-08-19
  • 打赏
  • 举报
回复
用IsNull方法。可以判断某个字段内容是否为空值
greenhill 2003-08-19
  • 打赏
  • 举报
回复
SqlCommand thisCommand=thisConnection.CreateCommand();
thisCommand.CommandText="SELECT * FROM 班级";
SqlDataReader thisReader=thisCommand.ExecuteReader();
while(thisReader.Read())
{
if(thisReader["年级"].ToString().Trim()==comboBox1.Text.Trim() && thisReader["班级名称"].ToString().Trim()==textBox1.Text.Trim())
{
MessageBox.Show("该班已存在!");
i=0;
thisReader.Close();
thisConnection.Close();
break;
}
else
{
i=1;
}
}

thisReader.Close();

if(i==1)
{
SqlDataAdapter thisAdapter=new SqlDataAdapter("SELECT * FROM 班级",thisConnection);
SqlCommandBuilder thisBuilder=new SqlCommandBuilder(thisAdapter);

DataSet thisDataSet=new DataSet();

thisAdapter.Fill(thisDataSet,"班级");

DataRow thisRow=thisDataSet.Tables["班级"].NewRow();
thisRow["年级"]=comboBox1.Text.Trim();
thisRow["班级名称"]=textBox1.Text.Trim();
thisRow["人数"]="0";
thisRow["班主任"]=textBox2.Text.Trim();
thisRow["班主任手机"]=textBox3.Text.Trim();

thisDataSet.Tables["班级"].Rows.Add(thisRow);

thisAdapter.Update(thisDataSet,"班级");

thisConnection.Close();

MessageBox.Show("修改成功!");

this.Close();
brightheroes 2003-08-19
  • 打赏
  • 举报
回复
show your code
greenhill 2003-08-19
  • 打赏
  • 举报
回复
这些我知道啊!就这样它才出错啊,因为读不到数据!我想问怎样判断是否读到了数据?
dding_ch 2003-08-19
  • 打赏
  • 举报
回复
DataReader dr = cmd.ExecuteReader();
if(dr.read()) //check whether the DataReader has got some values
{
...
}
dr.close();
jjcccc 2003-08-19
  • 打赏
  • 举报
回复

OleDataReader reader;

while (reader.Read())
{
//...
}
greenhill1 2003-08-19
  • 打赏
  • 举报
回复
我找到问题的根源了!是我的判断变量设置不对!和这段代码没有关系!感谢大家的帮助!
greenhill1 2003-08-19
  • 打赏
  • 举报
回复
我找到问题的根源了!是我的判断变量设置不对!和这段代码没有关系!感谢大家的帮助!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧