首页 > 开发 > 综合 > 正文

BETA2中操作SQL数据库

2024-07-21 02:23:48
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 在前面,我已经说了如何在beta2的环境下,操作access数据库,这次我们来看看如何通过ado。net来操作sql server数据库!

    首先我们要知道,在ado。net环境下,我们是通过system.data.sqlclient这个名字空间来操作的,另外还有一个system.data.sqltypes名字空间描述了sql server的字段类型,但它并不直接参与数据库的操作,所以我们重点放在system.data.sqlclient的使用上!

    按照惯例,我还是先列出我的例程:这个程序是我在写一个用户注册系统时用到的,先看程序:

    using system;
    using system.data;
    using system.data.sqlclient;

    //通过用户id号,取得用户资料
            public userinfo getuserinfo(string id)
            {
                sqlconnection myconn=sohotool.setconn();    //看备注一            myconn.open();  
                //设置sql查询语句
                string selectstr="select * from userinfo where id=" + id ;
                try{
                    sqlcommand mycmd = new sqlcommand(selectstr,myconn);
                    sqldatareader mysqlreader = mycmd.executereader();
                    if(mysqlreader.read())      //假如存在该用户,则录入需要的属性!
                    {
                        this.i_id=(int)mysqlreader["id"];
                        this.s_name=mysqlreader["name"].tostring();
                        this.s_nicheng=mysqlreader["nicheng"].tostring();
                        this.s_email=mysqlreader["email"].tostring();
                        this.s_password=mysqlreader["password"].tostring();
                        this.s_http=mysqlreader["http"].tostring();
                        this.s_oicq=mysqlreader["oicq"].tostring();
                        this.s_tag=mysqlreader["tag"].tostring();
                        this.i_charm=(int)mysqlreader["charm"];
                        this.i_score=(int)mysqlreader["score"];
                        this.i_bbswords=(int)mysqlreader["bbswords"];
                        this.s_pic=mysqlreader["pic"].tostring();
                        this.d_regtime=(datetime)mysqlreader["regtime"];
                    }
                    else
                    {
                        throw(new exception("没有该用户!" ));
                    }
                }
                catch(exception e)
                {
                    throw(new exception("数据库操作发生错误!" + e.message));
                }
                myconn.close();
                return(this);       
            }


    上面的程序实现的是:通过用户的id号来取得用户个人资料的,下面我们看看程序中有什么新的东西!

    首先我们开程序开始处引入了名字空间system.data.sqlclient;这样我们就可以用它来操作sql数据库了!

    1.    在函数开始我们通过sqlconnection myconn=sohotool.setconn(); 得到sql数据库的连接。

    2.设置了sql查询语句后,我们又定义了一个sqlcommand对象,并实例化,其实在ado。net中大部分sql语句都能很方便的用command来执行,但是如果和dateset结合的话,就要引入其它的一些东西了,这个到后面我们在说!

    3.定义sqldatareader对象,并通过sqlcommand对象执行sq语句,然后 将结果存入 sqldatareader对象中,语句如下:sqldatareader mysqlreader = mycmd.executereader();

    4.设置属性,并返回需要的结果

    看了我前面文章的人,应该都能感觉到,其实操作sql数据库原来和操作access数据库并没有什么区别嘛,无非是名字空间、command、reader的写法变了个样呀!呵呵,实际情况也几乎就是这样的!

    备注一、上面程序中我得到sql数据库连接是用的我自己的类,下面我吧这个程序也写出来!
    namespace soholife
    {
        using system;
        using system.data;
    using system.data.sqlclient;

    public class sohotool
        {
            //建立与sql数据库的连接        
            public static sqlconnection setconn()    
            {
                string connstr="server=soho;database=soholife;uid=sa;pwd=;";
                sqlconnection tempconn= new sqlconnection(connstr);
                return(tempconn);
            }
    }
    }
    这个程序我想不需要什么解释的吧,用处就是得到数据库连接,有些个人体会是, beta1下,我们可以通过继承connection,来建立自己的connection类,而在beta2下,却无法这样做了,不知道为什么要把connection类作成密封的形式!


    好了,这次就先写到这里,下一次,我把会说说如何通过sqlcommand对象执行update、insert、delete语句!如果朋友们有问题也可以给我写信讨论!
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表