日记之ADO.net之基础不全篇

本文详细介绍了如何通过调整数据库查询语句的执行方式,解决使用Select语句时出现的错误。从原始代码分析出发,解释了为何ExecuteNonQuery()无法执行Select查询,并提供了解决方案。此外,文章还推荐了一个全面的基础知识点链接,帮助读者深化对数据库操作的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写了个判断数据库是否存在记录的函数,可是总出错。原程序如下:
public bool CheckBaseUsed(string table,string fieldname,int fieldvalue)
  {
  SqlConnection cn =new SqlConnection(Properties.Settings.Default.bdtcConnectionString);
  string sqlstr = "Select " + fieldname + " from " + table + " Where " + fieldname + " = " + fieldvalue;
  SqlCommand cmd = new SqlCommand(sqlstr, cn);
  int ResultI = 0;
  try
  {
  cn.Open();
  ResultI = cmd.ExecuteNonQuery(); //错误在这里,ExecuteNonQuery()不能执行Select。
  cn.Close();
  if (ResultI > 0)
  {   
  return true;
  }
  else
  {   
  return false;
  }

  }
  catch  
  {
  return false;
  }
  }

为此还写了一个求助,在论坛中:http://topic.youkuaiyun.com/u/20120723/20/42249fcc-83d2-41d6-9355-77f41d48fd0d.html?1509904483

结果别人指出了问题。重新修改后的程序如下:

public bool CheckBaseUsed(string table,string fieldname,int fieldvalue)
        {
            SqlConnection cn =new SqlConnection(Properties.Settings.Default.bdtcConnectionString);
            string sqlstr = "Select " + fieldname + " from " + table + " Where " + fieldname + " = " + fieldvalue;
            SqlCommand cmd = new SqlCommand(sqlstr, cn);
            
            try
            {
                cn.Open();
                object my = cmd.ExecuteScalar();    //修改成这样
                cn.Close();
                if (object.Equals(my,null))
                {                    
                    return true;
                }
                else
                {                    
                    return false;
                }

            }
            catch 
            {
                return false;
            }
        }

都是基础不全面才会出现这样的笑话。

人家也推荐了一篇比较全面的基础知识点:

http://www.cnblogs.com/yangcaogui/archive/2012/06/09/2537086.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值