一个数据库的类

问题描述

#region创建SqlDataReader对象///<summary>///创建一个SqlDataReader对象///</summary>///<paramname="M_str_sqlstr">SQL语句</param>///<returns>返回SqlDataReader对象</returns>publicSqlDataReadergetread(stringM_str_sqlstr){SqlConnectionsqlcon=this.getcon();SqlCommandsqlcom=newSqlCommand(M_str_sqlstr,sqlcon);sqlcon.Open();SqlDataReadersqlread=sqlcom.ExecuteReader(CommandBehavior.CloseConnection);returnsqlread;}#endregion

try{SqlDataReadersqlread=boperate.getread("SELECTsum(gpjg)FROMtb_gpddwhere'"+riqistart.Text.Trim()+"'<=ccrqandccrq<='"+riqiend.Text.Trim()+"'andcph='"+Convert.ToString(dgvAreaInfo[0,dgvAreaInfo.CurrentCell.RowIndex].Value).Trim()+"'");if(sqlread.Read()){dgvAreaInfo.Rows[4].Cells[4].Value=sqlread["????"].ToString();}}catch(Exceptionex){MessageBox.Show(ex.Message,"提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);}

代码如上!我调用的时候不会写dgvAreaInfo.Rows[4].Cells[4].Value=sqlread["????"].ToString();这个了!结果可以在sql里面查出来

解决方案

解决方案二:
没有指定列名只能通过下标去取你这应该是DataTable.Rows[0][0];取到
解决方案三:
sqlread.GetInt(0);//第一列的整数类型
解决方案四:
引用2楼dongxinxi的回复:

sqlread.GetInt(0);//第一列的整数类型

提示指定的转换无效
解决方案五:
gpjg是什么类型,它的sum就是什么类型,调用对应的getXXX笔法
解决方案六:
SELECTsum(gpjg)assum1FROMtb_gpdd给它指定一个列名
解决方案七:
SELECTsum(gpjg)asgpjgFROMtb_gpdd给它指定一个列名
解决方案八:
inta=dgvAreaInfo.Rows.Count;//MessageBox.Show(a.ToString());for(intb=0;b<a;b++){SqlDataReadersqlread=boperate.getread("SELECTsum(gpjg)asgpjgFROMtb_gpddwhere'"+riqistart.Text.Trim()+"'<=ccrqandccrq<='"+riqiend.Text.Trim()+"'andcph='"+Convert.ToString(dgvAreaInfo.Rows[b].Cells[0].Value).Trim()+"'");sqlread.Read();if(sqlread.Read()){stringzhi1=sqlread["gpjg"].ToString();this.dgvAreaInfo.Rows[b].Cells[5].Value=zhi1.ToString();}sqlread.Close();}

解决方案九:
引用7楼criuslee的回复:

inta=dgvAreaInfo.Rows.Count;//MessageBox.Show(a.ToString());for(intb=0;b<a;b++){SqlDataReadersqlread=boperate.getread("SELECTsum(gpjg)asgpjgFROMtb_gpddwhere'"+riqistart.Text.Trim()+"'<=ccrqandccrq<='"+riqiend.Text.Trim()+"'andcph='"+Convert.ToString(dgvAreaInfo.Rows[b].Cells[0].Value).Trim()+"'");sqlread.Read();if(sqlread.Read()){stringzhi1=sqlread["gpjg"].ToString();this.dgvAreaInfo.Rows[b].Cells[5].Value=zhi1.ToString();}sqlread.Close();}

这个有什么问题循环不了!
解决方案十:
引用8楼criuslee的回复:

Quote: 引用7楼criuslee的回复:
inta=dgvAreaInfo.Rows.Count;//MessageBox.Show(a.ToString());for(intb=0;b<a;b++){SqlDataReadersqlread=boperate.getread("SELECTsum(gpjg)asgpjgFROMtb_gpddwhere'"+riqistart.Text.Trim()+"'<=ccrqandccrq<='"+riqiend.Text.Trim()+"'andcph='"+Convert.ToString(dgvAreaInfo.Rows[b].Cells[0].Value).Trim()+"'");sqlread.Read();if(sqlread.Read()){stringzhi1=sqlread["gpjg"].ToString();this.dgvAreaInfo.Rows[b].Cells[5].Value=zhi1.ToString();}sqlread.Close();}

这个有什么问题循环不了!

是的提示在没有任何数据时。进行无效的读取尝试
解决方案十一:
自定义一个数据库类的应用实例//创建数据库类用于登陆publicclassoperateData{publicoperateData(){//TODO:在此处添加构造函数逻辑}//创建数据库连接//<returns>返回SqlConnection对象</returns>publicstaticSqlConnectioncreateCon(){//创建数据库连接SqlConnectioncon=newSqlConnection(ConfigurationManager.AppSettings["con"]);returncon;}//该方法用来实现登录查询//<paramname="sql">需要执行的SQL语句</param>//<paramname="name">登录名</param>//<paramname="pass">密码</param>//<returns>返回一个布尔值,true表示登录成功false表示失败</returns>publicstaticboollogin(stringsql,stringname,stringpass){SqlConnectioncon=createCon();con.Open();SqlCommandcom=newSqlCommand(sql,con);com.Parameters.Add(newSqlParameter("@name",SqlDbType.VarChar,20));com.Parameters["@name"].Value=name;com.Parameters.Add(newSqlParameter("@pass",SqlDbType.VarChar,20));com.Parameters["@pass"].Value=pass;intEx=Convert.ToInt32(com.ExecuteScalar());con.Close();if(Ex>0){returntrue;}else{returnfalse;}}}//codego.net/tags/11/1///调用自定义类用于登陆protectedvoidimgBtnLogin_Click(objectsender,ImageClickEventArgse){//获取用户名stringuserName=txtName.Text;//获取密码stringpass=txtPass.Text;//编写SQL语句,查询用户名和密码是否正确stringsqlSel="select*fromuserRegisterwhereusername=@nameanduserPass=@pass";//掉用自定义方法执行SQL语句if(operateData.login(sqlSel,userName,pass)){//保存用户名Session["userName"]=txtName.Text;//编写SQL语句,查询指定用户的信息stringsql="select*fromuserRegisterwhereuserName='"+Session["userName"]+"'";//调用公共类中的getRow方法,并接收该方法返回的SqlDataReader对象SqlDataReadersdr=operateData.getRow(sql);//读取一条记录sdr.Read();//判断当前用户是否被锁定if(Convert.ToBoolean(sdr["lock"])){Session["userName"]=null;RegisterStartupScript("true","<script>alert('"+sdr["lockCause"].ToString()+"');location='index.aspx'</script>");}elseRegisterStartupScript("true","<script>alert('登录成功!单击返回首页');location='index.aspx'</script>");}else{RegisterStartupScript("false","<script>alert('用户名或密码错误!')</script>");}}

时间: 2024-11-02 13:24:37

一个数据库的类的相关文章

一个数据库操作类的实例(一.Command类部分)

command|数据|数据库 using System;namespace com.joybase.DB{ /// <summary> /// 数据库操作类,通过这一个类的对外接口,可以获得以下特性: /// 1.不必区分数据库类型,而去考虑是使用System.Data.SqlClient实现,或者使用System.Data.OleDB来实现; /// 2.可以将SQL语句进行模式化,比如输入"select * from tablename where username=? orde

一个数据库操作类的实例(二.Provider类)

数据|数据库 using System;namespace com.joybase.DB{ /// <summary> /// 数据库连接提供类 /// </summary> public class Provider {  //一个静态的连接接口;  private static System.Data.IDbConnection conn;  /// <summary>  /// 构造方法,设为私有类型,是防止外部无效的引用;  /// </summary&g

[原创] EasyASP v1.5简化ASP开发,包含数据库操作类

EasyASP v1.5简化ASP开发,包含数据库操作类 EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作.目前只提供了VBScript版,JScript版将来可能会提供.详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例. 源码

简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)

首先,认为ASP已经过时的人,请忽略此帖,谢谢.俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便.尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵.     EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单).而Eas

简单的PHP数据库处理类

最近在看后盾网的php视频,主要内容是相关制作一个博客系统,感觉还是很有收获. 简单的数据库处理类 下面是其中讲到的一个简单的数据库处理类,请见源码:     代码如下 复制代码   <?php     /**     * Created by JetBrains PhpStorm.     * User: YangLiu     * Date: 2013-7-12     * Time: 下午6:19     * Description:这是一个简单的数据库操作类,便于快速向数据库插入数据.删

PHP实现PDO的mysql数据库操作类_php技巧

本文实例讲述了PHP实现PDO的mysql数据库操作类.分享给大家供大家参考.具体分析如下: dbconfig类负责配置数据库访问信息,包括:服务器地址.端口.数据库实例名.用户名.用户密码.字符集等. dbtemplate类集合了对数据库的访问操作,主要有以下几个操作: 1. queryrows:返回多行记录 2. queryrow:返回为单条记录 3. queryforint:查询单字段,返回整数 4. queryforfloat:查询单字段,返回浮点数(float) 5. queryfor

php面象对象数据库操作类实例_php技巧

本文实例讲述了php面象对象数据库操作类.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //此处构造一个数据库操作类,封装所有数据库操作 //可以扩展便于后台管理程序的使用 Class MySQLDB  {     var $host;     var $user;     var $passwd;     var $database;    var $conn;       //利用构造函数实现变量初始化     //同时连接数据库操作    function MySQLD

php面象对象数据库操作类

<?php //******************************************************************* //此处构造一个数据库操作类,封装所有数据库操作 //可以扩展便于后台管理程序的使用 Class MySQLDB  {     var $host;     var $user;     var $passwd;     var $database;    var $conn;     //利用构造函数实现变量初始化     //同时连接数据库操

PDO的mysql数据库操作类

pdo的mysql教程数据库教程操作类 * dbconfig类负责配置数据库访问信息,包括:服务器地址.端口.数据库实例名.用户名.用户密码.字符集等.   * dbtemplate类集合了对数据库的访问操作,主要有以下几个操作:   1. queryrows : 返回多行记录   2. queryrow : 返回为单条记录   3. queryforint : 查询单字段,返回整数   4. queryforfloat : 查询单字段,返回浮点数(float)   5. queryfordou