VS2010连接SQL Server 2008操作与编程 (笔记)

实现VS2010连接SQL Server 2008操作与编程,主要记录的是一个学习的过程。

实现VS2010连接SQL Server 2008:逗逗飞的专栏

实现VS2010连接SQL Server 2008代码:点击打开链接

ADO的三个指针:

_ConnectionPtr:用于建立数据库的连接。
 _RecordsetPtr:它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。
 _CommandPtr:提交的sql查询字符串指针

目的:连接数据库,实现对数据库的连接,读取操作。结果如下所示:

     

          图:sql数据库

   

               图:VS2010运行结果

    

需要的头文件
#import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespace <span style="font-family: Arial, Helvetica, sans-serif;">rename("EOF","adoEOF")rename("BOF","adoBOF")</span>

用到的三个变量
_ConnectionPtr m_pConnection; // 数据库
_RecordsetPtr m_pRecordset; // 命令
_CommandPtr m_pCommand; // 记录
连接数据库
	void CtestDlg::OnBnClickedConnect()
{
	// TODO: 在此添加控件通知处理程序代码

	::CoInitialize(NULL);   //初始化OLE/COM库环境
	HRESULT hr = NULL;
	try
	{
		hr = m_pConnection.CreateInstance(_uuidof(Connection));//创建连接对象实例
		if (SUCCEEDED(hr))
		{
			m_pConnection->ConnectionString =
				("Provider = SQLOLEDB.1; Persist Security Info = False;
				User ID = ARP; Password=123456; Initial Catalog = school; Data Source = (local)");
			hr = m_pConnection->Open("", "", "", adConnectUnspecified);//打开数据库
			if (FAILED(hr))
			{
				AfxMessageBox(_T("Open Failed!"));
			}
		}
		else
		{
			AfxMessageBox(_T("Create instance of connection failed!"));
		}
	}
	catch (_com_error e)
	{
		CString temp;
		temp.Format(_T("数据库连接错误\r\n错误信息为:%s"), e.ErrorMessage());
		AfxMessageBox(temp);
	}
}
查询数据库
void CtestDlg::OnBnClickedAdd()
{
	// TODO: 在此添加控件通知处理程序代码
	try
	{
		m_pRecordset.CreateInstance("ADODB.Recordset");
	    m_pRecordset->Open("select sno, cno, grade from sc",
		_variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
	}
	catch (_com_error &e)
	{
		AfxMessageBox(e.Description());
	}
	_variant_t sno, cno, grade;
	try
	{
		int num = m_list.GetItemCount();
		while (!m_pRecordset->adoEOF)
		{
			CString sno= (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("sno"))->Value);
			CString cno = (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("cno"))->Value);
			CString grade = (_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("grade"))->Value);

			m_list.InsertItem(num, sno);
			m_list.SetItemText(num, 1, cno);
			m_list.SetItemText(num , 2, grade);

			num++;
			m_pRecordset->MoveNext();
		}
	}
	catch (_com_error &e)
	{
		AfxMessageBox(e.Description());
	}
}
插入数据(不带参数)
try
{
	if(!m_pRecordset->Supports(adAddNew)) return;

	m_pRecordset->AddNew();
	m_pRecordset->Fields->GetItem
		(_variant_t("姓名"))->Value=_bstr_t("赵薇");
	m_pRecordset->Fields->GetItem
		(_variant_t("性别"))->Value=_bstr_t("女");
	m_pRecordset->Fields->GetItem
		(_variant_t("age"))->Value=_variant_t((short)20);
	m_pRecordset->Fields->GetItem
		(_variant_t("marry"))->Value=_bstr_t("未婚");
	m_pRecordset->Update();
}//try
catch (_com_error &e)
{
	::MessageBox(NULL, "又出毛病了。","提示",MB_OK │ MB_ICONWARNING);
} 
删除数据
try
{
	m_pRecordset->MoveFirst();
	while(m_pRecordset->adoEOF==VARIANT_FALSE)
	{
		CString sName=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem
			(_variant_t("姓名"))->Value);
		if(::MessageBox(NULL,"姓名="+sName+"\n删除她吗?",
			"提示",MB_YESNO │ MB_ICONWARNING)==IDYES)
		{
			m_pRecordset->Delete(adAffectCurrent);
			m_pRecordset->Update();
		}
		m_pRecordset->MoveNext();
	}
}//try
catch (_com_error &e)
{
	::MessageBox(NULL,"又出毛病了。","提示",MB_OK │ MB_ICONWARNING);
} 
时间: 2024-10-20 10:34:38

VS2010连接SQL Server 2008操作与编程 (笔记)的相关文章

Java连接Sql Server 2008的简单数据库应用

1.从微软官网下载JDBC驱动包 sqljdbc_4.0.2206.100_chs.exe,双击解压文件到指定目录,我的指定目录是: C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs 下面是解压后的文件, 如果JDK版本低于6.0,则需使用sqljdbc.jar; 6.0以上版本使用sqljdbc4.jar,使用sqljdbc4.jar版本好处可以省略 Class.forName("com.micr

java连接sql server 2008的问题(jdbc驱动的方法)

这是程序代码,我是按照网上和视频讲解的步骤写的代码:import java.sql.*;public class jdbc {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubConnection ct = null;PreparedStatement ps = null;ResultSet rs = null;try {//第一步,加载驱动Class.forNa

连接SQL SERVER 2008需要加端口号

VC2010 ADO 连接SQL SERVER 2008,127.0.0.1,1433,要加上端口,否则连不上.注意:地址和端口之间使用逗号隔开. 连接SQL SERVER 2000可以不加端口号,使用默认的1433.  本文用菊子曰发布

PHP5.6.15连接Sql Server 2008配置方案

php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的: http://pan.baidu.com/s/1o7FVblw 解压复制里面dll文件到php的ext文件夹里面 打开php.ini文件添加下面两个扩展: extension=php_pdo_sqlsrv_56_ts.dll extension=php_sqlsrv_56_ts.dll 保存ph

php连接sql server 2008数据库

原文:php连接sql server 2008数据库 关于php连接sql server 2008的问题,2000的版本可以直接通过php中的配置文件修改,2005以上的版本就不行了,需要使用微软公司提供的驱动(sql server driver for php). sql server driver for php下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098 1. 下载驱动程序:下载完成后安装释放程序,里面

VBA连接SQL SERVER数据库操作Excel

 VBA连接SQL SERVER数据库操作Excel. Sub 按钮1_Click() Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量:sht 为excel工作表对象变量,指向某一工作表 'Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息:请先添加ADO引用 'Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表 '工具 ---〉引用

《Microsoft Sql server 2008 Internals》读书笔记--第六章Indexes:Internals and Management(1)

<Microsoft Sql server 2008 Internals>索引目录: <Microsoft Sql server 2008 Internals>读书笔记--目录索引 在第五章主要学习了table的内部存储结构,第七章<Special storage>中将继续深入学习存储机制,那将是本书最难理解的一章.第六章主要介绍index的基础知识,第八章是<query Optimizer>,下面我们先来看看第六章:Indexes:Internals an

远程连接SQL Server 2008,服务器端和客户端配置

第一步(SQL2005.SQL2008): 开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准) 的协议-->TCP/IP-->右键-->启用 第二步: SQL2005: 开始-->程序-->Microsoft SQL Server 2005-->配置工具--&g

SSMS 2005 连接 SQL SERVER 2008问题

用本机的 Microsoft SQL Server Management Studio 2005 客户端连接数据库服务器时报错:"This version of Microsoft SQL Server Management Studio can only be used to connect to SQL Server 2000 and SQL Server 2005 servers. (ConnectionDlg)",截图如下: 具体环境: 本机安装的是Microsoft SQL