现在的位置: 首页 > 综合 > 正文

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

2013年05月04日 ⁄ 综合 ⁄ 共 2181字 ⁄ 字号 评论关闭

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();

好了, 可以正常运行了。

抱歉!评论已关闭.