关于连接数据库的一点小问题。

bingyuwuhena 2013-09-21 04:50:51
做的一个酒店管理系统 当一个房间登记入住时先进行判断 该房间是否已经有人入住 (房间表中有一个房间状态列专门用来记录房间预订 入住 空等状态)
怎样将数据库中该房间的状态传送到前台以进行判断

SqlDataReader ss= MyClass.getcom("select Room_status from Room_Information where Room_No='"+tbRoomNo.Text+"'");
string aa =ss.ToString();
if (aa.Equals("入住"))
{
MessageBox.Show("房间已有人入住");
}



其中getcom是定义的访问数据库的公共方法

public SqlDataReader getcom(string SQLstr)
{
getcon(); //打开与数据库的连接
SqlCommand My_com = My_con.CreateCommand(); //创建一个SqlCommand对象,用于执行SQL语句
My_com.CommandText = SQLstr; //获取指定的SQL语句
SqlDataReader My_read = My_com.ExecuteReader(); //执行SQL语名句,生成一个SqlDataReader对象
return My_read;
}


为什么运行之后 根本不行啊 感觉就没有执行if语句一样 本人菜鸟 求高手解答。。
...全文
175 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanwengong 2013-09-23
  • 打赏
  • 举报
回复
SqlDataReader ss= MyClass.getcom("select Room_status from Room_Information where Room_No='"+tbRoomNo.Text+"'"); string aa =ss.ToString(); aa只能等于SqlDataReader 这个类型的全名。。。 学学数据库的操作吧,亲
tcmakebest 2013-09-23
  • 打赏
  • 举报
回复
楼主基本的数据库读取还不会啊,这个系统中应该有类似的数据库操作吧,找出来看看吧。
xingn 2013-09-23
  • 打赏
  • 举报
回复
public override IDataReader GetDataReader(string commandText) { IDataReader reader2; SqlCommand command = new SqlCommand(commandText); command.Connection = (SqlConnection) base.connection; if (base.isInTransaction) { command.Transaction = (SqlTransaction) base.transaction; } try { reader2 = command.ExecuteReader(); } catch (Exception exception) { throw new EntityException(exception.Message); } finally { command.Dispose(); command = null; } return reader2; }
屌絲來襲 2013-09-23
  • 打赏
  • 举报
回复
getcom()返回的結果是什麽?
bingyuwuhena 2013-09-21
  • 打赏
  • 举报
回复
bingyuwuhena 2013-09-21
  • 打赏
  • 举报
回复
抱歉 之前有点事。。 刚刚试了一下 还是不行
屌絲來襲 2013-09-21
  • 打赏
  • 举报
回复
第二段ExecuteScalar後面的ToString()也刪... 直接在編輯欄打的,沒檢查...
屌絲來襲 2013-09-21
  • 打赏
  • 举报
回复
第一段那個tostring()可刪...
屌絲來襲 2013-09-21
  • 打赏
  • 举报
回复
String ss= MyClass.getcom("select Room_status from Room_Information where Room_No='"+tbRoomNo.Text+"'").ToString(); 
if (ss.Equals("入住")) 
{                   
  MessageBox.Show("房间已有人入住");      
} 

public String getcom(string SQLstr)     
{             
           getcon();   //打开与数据库的连接 
            SqlCommand My_com = My_con.CreateCommand(); //创建一个SqlCommand对象,用于执行SQL语句 
            My_com.CommandText = SQLstr;    //获取指定的SQL语句
             Object My_read = My_com.ExecuteScalar().ToString(); //执行SQL语名句,生成一个SqlDataReader对象
             if(My_read == NULL || My_read == DBNull.Value)
           return "";
           else
           return My_read.ToString();
} 
bingyuwuhena 2013-09-21
  • 打赏
  • 举报
回复
什么意思。。。。。
bdmh 2013-09-21
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldatareader.aspx,先看看reader怎么用
屌絲來襲 2013-09-21
  • 打赏
  • 举报
回复
My_com.ExecuteScalar() 獲取查詢的第一個結果
bingyuwuhena 2013-09-21
  • 打赏
  • 举报
回复
断点之后 显示aa是NULL。。。 可我试验的是204房间 数据库已经加了 204的Room_status 是入住 为什么是空啊 到底哪出问题了
屌絲來襲 2013-09-21
  • 打赏
  • 举报
回复
下斷點看你獲取到的數據是什麽就知道了

110,561

社区成员

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

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

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