vs2010 中sql 测试数据库学习小结

    技术2022-05-19  25

    vs2010 中sql 测试数据库小结

    2011-03-05   18:03:49

    ---------------------------------

    首先新建一个DAL项目

    将其自动生成的class1.cs  Rename 成 SQLHelper  数据库助手

     

    要进行数据操作就要用到数据集之类的东西,就要引用相关的程序集 也就是引入相应的命名空间

    --------------------------------------------------------------------------------------------------------

    程序集其实就是一个DLL,引用程序集是调用其中类的必备条件

    一个程序集包括一个或多个命名空间

    例如我们在这里要引用的命名空间

    System.Data 及  System.Data.SqlClient 都是来同一个程序集 System.Data.DLL

    ---------------------------------------------------------------------------------------------------------

    那么在这里引用

    using System.Data

    using System.Data.SqlClient

     

    那么之后 就在

    SQLHelper 类中来编写测试方法 

    ---------------------------------------------------------------------------------------------------------

    public int test(){ /*第一步: 新建一个链接数据库的字符串  *这个连接字符串中有四个参数  *参数一:server = "链接数据库服务器的名称" 如果是本地数据库 可以直  *接用 server=(local) 即可 假如数据库服务器名称为hostDB  *也可以写成server = hostDB 也可以  但是如果  服务器名称中包含有 斜杠 就要转换  写成这样 :

     * connStr = @"server= system/hostDB"  即加上@符号  *参数二:database ="本项目的数据库"  *参数三:User Id = "数据库登陆名"  *参数四:pwd = "登陆密码"  */ string connStr = "server = (local); database = testdatabase; User Id = sa ; pwd = 123456";

    /*第二步:实例化连接字符串对象*/ SqlConnection conn = new SqlConnection(connStr); /*第三步:初始化SQL语句*/ string sql = "insert into category(name) values('测试');

    /*第四步:实例化执行命令*/ SqlCommand cmd = new SqlCommand(sql,conn);

    /*返回测试结果*/ int res = cmd.ExecuteNonQuery(); }

     

    写好之后 回到前台页面来调用这个测试方法

    当然要调用它 最开始就要引用它

    using DAL;

     

    接着在Page_Load()方法中显示出来

    Response.Write(SQLhelper.  /*解释*/);

    /*解释*/

    /*在这里通过 .  运算符没法调用 test() 方法 可是我们明明谢谢了test()方法的啊, Web 层调用DAL 要引用DAL才能调用 于是就在Web层中右键引用,但是没有显示引用了DAL   这个为什么呢?  这个道理和前面说的引用命名空间一样,要引用DAL中的test()方法 即引用DAL程序集中的test()  程序集是一个DLL   那么这里我们之所以引用了DAL没有在Web层中显示已经引用了的DAL是因为我们DAL编好这后没有编译它  也就是说没有编译出DAL的DLL程序集  所有我们编译一下DAL  然后就可以了 我们接着再回到Respose.Write (SQLHelper. ) 这里 但是我们试图通过. 运算符来调用test() 方法时还是不得行,那又是什么原因呢? 我们回到 SQLHelper类中来找原因  这里我们发现  无论是SQLHelper 还是其中的test()方法多不是 static 静态的,不是静态的方法或类意味要现实化例化采用调用

    在这里有两种解决办法 一种是将 test()方法改成静态的  public static int test() {//.....} 这样的话我们就可以在前台通过.运算符调用了:Response.Write(SQLHelper.test()) ; 但是我们通常不这么做,是因为 static 的方法每次调用时都要先初始化才能用 这要有时候就很影响我们的项目运行的性能  我们通常是实例化来调用test()方法   Response.Write(new SQLHelper().test());

    */ 

     好了代码写完了, ctrl + F5 运行  发现出错了 错误截图:

    这个是什么原因呢? 原因在于 我们不是通过 SqlConnection 对象 conn来调用数据库吗? 对于这个数据库连接字符串 在使用前要调用它的Open()方法来打开数据库   使用完后要调用它的Close()方法来关闭数据库

    在第三步之前 加上conn.Open();  第四步之后加上 conn.Close();

    好了, 可以正常运行了。


    最新回复(0)