在前一篇文章中,介绍了如何使用编程方式来自动获取SQLServer2000的连接字符串,具体方法见:
http://blog.csdn.net/super0208/archive/2010/05/05/5560895.aspx
现在就利用获取的字符串来具体连接数据库并显示出数据库的表中内容。
在VC中新建一个基于对话框的应用程序,取名Ado.在对话框上拖放一个列表框和按钮控件。按钮ID: IDC_BTN_QUERY, 双击按钮即进入编程页面
在编写按钮控件的响应函数之前,还需要引入一个动态链接库msado15.dll.于是在头文件stdafx.h中引入该库,代码如下:
# import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF")
其中no_namespace 表示不用命名空间,这样可以方便访问。
rename("EOF","rsEOF")表示将EOF改为rsEOF,因为EOF是记录集的结尾,而文件也是以EOF结尾的,所以改成rsEOF是为了避免冲突。
下面就开始写按钮IDC_BTN_QUERY的响应函数,代码如下:
void CAdoDlg::OnBtnQuery() { // TODO: Add your control notification handler code here CoInitialize(NULL); //用于初始化COM库 _ConnectionPtr pConn(_uuidof(Connection));//使用智能指针定义一个连接对象并初始化 _RecordsetPtr pRst(_uuidof(Recordset)); pConn->ConnectionString ="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=JIANGSHENG"; pConn->Open("","","", adConnectUnspecified);//打开数据库的连接 pRst=pConn->Execute("Select * from Employees", NULL, adCmdText); while(!pRst->rsEOF)//如果没有到达记录集的结尾,就从记录集中取出数据 { ((CListBox*)GetDlgItem(IDC_LIST1)) ->AddString ( (_bstr_t)pRst->GetCollect("Title")); pRst->MoveNext (); } pRst->Close(); pConn->Close(); pRst.Release (); pConn.Release (); CoUninitialize();//卸载COM库 }
可以看到,连接字符串正是用的上篇文章中自动生成的字符串,数据库仍以NorthWind为例,查找表Employees中Title字段的内容,运行效果如下:
这说明程序上篇文章中获取的连接字符串是完全正确的。这样我们就不用为如何去设置连接字符串而烦恼了。
下面再是使用VS2005来连接SQLServer2000,做一个简单的比较。
新建一个网站,取名为LinkSQL.在设计界面拖放一个GridView控件即可,进入代码编写界面,添加代码如下:
protected void Page_Load(object sender, EventArgs e) { // string strCon = "Data Source=JIANGSHENG;Database=NorthWind;Integrated Security=True;"; string strCon = "Data Source=(local);Database=NorthWind;Integrated Security=True;"; string sqlstr = "select Title from Employees";//SQL命令 SqlConnection sqlcon = new SqlConnection(strCon);//声明SqlConnection对象并初始化 SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);//建立数据适配器对象并初始化 DataSet myds = new DataSet();//声明一个数据集对象 sqlcon.Open();//打开连接 myda.Fill(myds); GridView1.DataSource = myds;//设定数据源 GridView1.DataBind();//绑定GridView }
编写代码时不要忘了引用命名空间:
using System.Data.SqlClient;
代码中的两个连接字符串都可以运行,当然也可以采用密码验证的登录方式。依然是使用NorthWind为例,查找表Employees中Title字段的内容,运行结果如图:
仅从数据库连接字符串的设置来看,还是.net相对简单些,这也可能是.net容易入手的一个小缩影吧。