CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  .NET Framework

拜托~~谁帮我解释下好么?为什么会出这样子的错

楼主fishfish__flying(fishfish__flying)2005-06-30 15:40:30 在 .NET技术 / .NET Framework 提问

public   int   daStudent()  
  {  
                          int   tag=0;  
  SqlConnection   conn=new   SqlConnection(connString);  
  string   query="select   *   from   student   where   [sID]='"+textBox1.Text+"'and   [sPassage]='"+textBox2.Text+"'";  
  SqlCommand   stuCom=conn.CreateCommand();  
  stuCom.CommandText=query;  
  conn.Open();  
  try  
  {  
  SqlDataReader   dr=stuCom.ExecuteReader();  
   
  if(dr.Read())  
  {  
  tag=1;  
  }  
  dr.Close();  
  }  
  catch(Exception   e)  
  {  
  MessageBox.Show(e.StackTrace);  
  }  
  conn.Close();  
  return   tag;  
   
  }  
  错误提示:    
  未处理的“System.Data.SqlClient.SqlException”类型的异常出现在   system.data.dll   中。  
   
  其他信息:   系统错误。  
   
  SQL语句我放到查询分析器里去看过的,没问题啊  
  提示的错误在这句上面:   SqlDataReader   dr=stuCom.ExecuteReader();  
  然后catch到的错误讲:  
    at   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior   cmdBehavior,   RunBehavior   runBehavior,   Boolean   returnStream)  
        at   System.Data.SqlClient.SqlCommand.ExecuteReader()  
        at   stuTeaMan.Form1.daStudent()   in   c:\documents   and   settings\administrator\桌面\aaa\stuteaman\stuteaman\login.cs:line   154  
  (154行就是这行:   SqlDataReader   dr=stuCom.ExecuteReader();)  
   
  我已经好迷茫了啊~~~到底怎么错的啊~~~~ 问题点数:100、回复次数:11Top

1 楼54783szg(百里洲)回复于 2005-06-30 15:55:01 得分 10

SqlConnection   myConn   =   new   SqlConnection(connString);  
  string   query="select   *   from   student   where   [sID]='"+textBox1.Text+"'and   [sPassage]='"+textBox2.Text+"'";  
  try  
  {  
  SqlCommand   myComm   =   new   SqlCommand(query,myConn);  
                    ......  
  }  
  catch(Exception   e)  
  {  
  MessageBox.Show(e.Message);  
  }  
  finally  
  {  
  myConn.Close();  
  }  
  Top

2 楼net_lover(【孟子E章】)回复于 2005-06-30 15:57:53 得分 5

string   query="select   *   from   student   where   [sID]='"+textBox1.Text+"'   and   [sPassage]='"+textBox2.Text+"'";  
  是不是少了空格  
  Top

3 楼ld_thinking(懒得想)回复于 2005-06-30 16:01:29 得分 5

sID     sPassage   都是文本类型?  
   
  你已经catch怎么还会抱错   ?Top

4 楼3tzjq(永不言弃)回复于 2005-06-30 16:03:23 得分 5

改这句试试:  
  SqlCommand   stuCom=new   SqlCommand(query,conn);  
  ....  
  Top

5 楼fishfish__flying(fishfish__flying)回复于 2005-06-30 16:06:32 得分 0

啊~~~!!太谢谢可爱的各位啦……我把列名写错啦(该检讨)。  
  顺便问下如果我要用DataSet实现查询的话应该怎么写这段呢~~??继续谢谢各位啦~~~~嘿Top

6 楼3tzjq(永不言弃)回复于 2005-06-30 16:07:01 得分 10

还有提醒你:  
  最好将conn.Close();放到finally{conn.Close();}中去。Top

7 楼fishfish__flying(fishfish__flying)回复于 2005-07-01 09:02:40 得分 0

SqlDataAdapter   da   =   new   SqlDataAdapter(query,conn);  
  DataSet   ds   =   new   DataSet();  
  da.Fill(ds,"test");  
  if(ds.Tables[0].Rows.Count   ==   0)  
  tag=1;  
  请问下da.Fill(ds,"test");里面的test是什么?我看了书上的,好像又不是表名,比方说数据库里的表叫title,它这里写的就是Title,要是我把Title改成Titles就什么也查不出来了,为什么呢?  
  Top

8 楼WTaoboy(SnowMans)回复于 2005-07-01 09:18:25 得分 5

dim   adr()   as   DataRow   =   ds.Table("student").Select("sID='11111'","sPassage='222222'")Top

9 楼sfanpu(Erick Shuai)回复于 2005-07-01 10:31:28 得分 30

暈----“列名写错”  
   
  其實如果只做查詢的話用sqldatareader的效率是最高的了。  
   
  要用dataset的話:  
  public   DataSet   SelectSqlSrvRows(DataSet   dataset,string   connection,string   query)    
  {  
          SqlConnection   conn   =   new   SqlConnection(connection);  
          SqlDataAdapter   adapter   =   new   SqlDataAdapter();  
          adapter.SelectCommand   =   new   SqlCommand(query,   conn);  
          adapter.Fill(dataset);  
          return   dataset;  
  }  
  Top

10 楼mathsword(梦在流浪)回复于 2005-07-01 11:27:45 得分 30

Fill   方法支持以下情况:DataSet   包含多个   DataTable   对象,而这些对象的名称只有大小写不同。在这种情况下,Fill   执行区分大小写的比较以查找相应的表,如果不存在完全匹配的表,则新建一个。下面的   C#   代码阐释该行为。  
   
  DataSet   dataset   =   new   DataSet();  
  dataset.Tables.Add("aaa");  
  dataset.Tables.Add("AAA");  
  adapter.Fill(dataset,   "aaa");   //   Fills   "aaa",   which   already   exists   in   the   DataSet.  
  adapter.Fill(dataset,   "Aaa");   //   Adds   a   new   table   called   "Aaa".  
   
  如果调用   Fill   并且   DataSet   只包含一个其名称只有大小写不同的   DataTable,则更新该   DataTable。在这种情况下,比较不区分大小写。下面的   C#   代码阐释该行为。  
   
  DataSet   dataset   =   new   DataSet();  
  dataset.Tables.Add("aaa");  
  adapter.Fill(dataset,   "AAA");   //   Fills   table   "aaa"   because   only   one   similarly   named   table   is   in   the   DataSet.  
  Top

11 楼fishfish__flying(fishfish__flying)回复于 2005-07-01 14:55:31 得分 0

hoho~~~~~3Q各位啦~~~结了~~Top

相关问题

  • 拜托~~谁帮我解释下好么?为什么会出这样子的错
  • 谁能帮我解释这条语句?拜托!
  • 谁能给我解释一下这句话,拜托了
  • 刻录机上面的意思。拜托进来解释一下。很简单的
  • 编译错误,拜托帮我看看
  • 一个折磨了我很多此的错误,希望高手能帮我解决一下,拜托拜托!
  • 拜托,看一下什么错误,谢谢!(Win200Server+Resin2.0.5)
  • 帮忙检查一下存储过程的错误,拜托啊
  • 请问我这样错在那里,要怎么改?拜托了
  • 用Jbuilder2005 遇到错误 拜托大家帮忙

关键词

  • c#
  • ds
  • tag
  • stucom
  • spassage
  • dataset
  • aaa
  • stuteaman
  • fills
  • 大小写

得分解答快速导航

  • 帖主:fishfish__flying
  • 54783szg
  • net_lover
  • ld_thinking
  • 3tzjq
  • 3tzjq
  • WTaoboy
  • sfanpu
  • mathsword

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo