新建查询—>粘贴下面eg代码—>执行—>刷新数据库—>创建成功

eg pxscj
create database pxscj
go
USE [pxscj]
GO
/****** Object: Table [dbo].[cjb] Script Date: 2017/9/25 5:25:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cjb](
[学号] [char](6) NOT NULL,
[课程号] [nchar](3) NOT NULL,
[成绩] [int] NULL,
CONSTRAINT [PK_cjb] PRIMARY KEY CLUSTERED
(
[学号] ASC,
[课程号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[kcb] Script Date: 2017/9/25 5:25:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[kcb](
[课程号] [char](3) NOT NULL,
[课程名] [nchar](16) NOT NULL,
[开课学期] [tinyint] NULL,
[学时] [tinyint] NULL,
[学分] [tinyint] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[xsb] Script Date: 2017/9/25 5:25:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[xsb](
[学号] [char](6) NOT NULL,
[姓名] [nchar](8) NOT NULL,
[性别] [bit] NULL,
[出生时间] [date] NULL,
[专业] [nchar](12) NULL,
[总学分] [int] NULL,
[备注] [nvarchar](500) NULL,
[照片] [varbinary](max) NULL,
CONSTRAINT [PK_xsb] PRIMARY KEY CLUSTERED
(
[学号] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'101', 80)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191301', N'206', 76)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191302', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191302', N'206', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'101', 62)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'102', 70)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191303', N'206', 81)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'101', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'102', 84)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191304', N'206', 84)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'101', 86)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'102', 55)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191306', N'206', 95)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'101', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191307', N'206', 45)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191308', N'101', 89)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191308', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'101', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'102', 79)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191309', N'206', 89)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191310', N'101', 95)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191310', N'206', 87)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'101', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'102', 95)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191311', N'206', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'101', 89)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'102', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'191313', N'206', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'101', 89)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'102', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221301', N'206', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'101', 66)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'102', 89)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221302', N'206', 70)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221303', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221303', N'206', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'101', 98)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'102', 76)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221304', N'206', 85)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'101', 80)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'102', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221306', N'206', 87)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'101', 76)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'102', 94)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221310', N'206', 86)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'101', 76)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'102', 46)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221316', N'206', 44)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221318', N'101', 76)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221318', N'206', 77)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'101', 82)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'102', 96)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221320', N'206', 90)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'101', 56)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'102', 67)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221321', N'206', 88)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'101', 69)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'102', 78)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'206', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'208', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'209', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'210', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'212', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'301', 100)
GO
INSERT [dbo].[cjb] ([学号], [课程号], [成绩]) VALUES (N'221341', N'302', 100)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'101', N'计算机基础 ', 1, 80, 5)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'102', N'程序设计语言 ', 2, 68, 4)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'206', N'离散数学 ', 4, 68, 4)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'208', N'数据结构 ', 5, 68, 4)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'209', N'操作系统 ', 6, 68, 4)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'210', N'计算机原理 ', 5, 85, 5)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'212', N'数据库原理 ', 7, 68, 4)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'301', N'计算机网络 ', 7, 51, 3)
GO
INSERT [dbo].[kcb] ([课程号], [课程名], [开课学期], [学时], [学分]) VALUES (N'302', N'软件工程 ', 7, 51, 3)
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191301', N'王林 ', 1, CAST(N'1990-02-10' AS Date), N'计算机 ', 60, N'bbb')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191302', N'程明 ', 1, CAST(N'1991-02-01' AS Date), N'计算机 ', 50, N'我是 191302')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191303', N'王燕 ', 0, CAST(N'1989-10-06' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191304', N'韦严平 ', 1, CAST(N'1990-08-26' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191306', N'李方方 ', 1, CAST(N'1990-11-20' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191307', N'李明 ', 1, CAST(N'1990-05-01' AS Date), N'计算机 ', 54, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191308', N'林一帆 ', 1, CAST(N'1989-08-05' AS Date), N'计算机 ', 52, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191309', N'张强明 ', 1, CAST(N'1994-08-11' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191310', N'张蔚 ', 0, CAST(N'1996-07-22' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191311', N'赵琳 ', 0, CAST(N'1995-03-18' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191313', N'严红 ', 0, CAST(N'1994-08-11' AS Date), N'计算机 ', 48, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'191315', N'刘明仪 ', 1, CAST(N'1996-03-02' AS Date), N'计算机 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221301', N'王敏 ', 1, CAST(N'1994-06-10' AS Date), N'通信工程 ', 42, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221302', N'王林 ', 1, CAST(N'1994-01-29' AS Date), N'通信工程 ', 40, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221303', N'王玉民 ', 1, CAST(N'1995-03-26' AS Date), N'通信工程 ', 42, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221304', N'马琳琳 ', 1, CAST(N'1995-02-10' AS Date), N'通信工程 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221306', N'李计 ', 1, CAST(N'1995-09-20' AS Date), N'通信工程 ', 53, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221310', N'李红庆 ', 1, CAST(N'1994-05-01' AS Date), N'通信工程 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221316', N'孙详欣 ', 1, CAST(N'1994-03-19' AS Date), N'通信工程 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221318', N'孙研 ', 1, CAST(N'1995-10-09' AS Date), N'通信工程 ', 56, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221320', N'吴薇华 ', 1, CAST(N'1995-03-18' AS Date), N'通信工程 ', 48, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221321', N'刘燕敏 ', 1, CAST(N'1994-11-12' AS Date), N'通信工程 ', 50, N'...')
GO
INSERT [dbo].[xsb] ([学号], [姓名], [性别], [出生时间], [专业], [总学分], [备注]) VALUES (N'221341', N'罗林琳 ', 1, CAST(N'1995-01-30' AS Date), N'通信工程 ', 52, N'...')
GO
ALTER TABLE [dbo].[cjb] ADD CONSTRAINT [DF_cjb_成绩] DEFAULT ((0)) FOR [成绩]
GO
ALTER TABLE [dbo].[kcb] ADD CONSTRAINT [DF_kcb_开课学期] DEFAULT ((1)) FOR [开课学期]
GO
ALTER TABLE [dbo].[kcb] ADD CONSTRAINT [DF_kcb_学时] DEFAULT ((0)) FOR [学时]
GO
ALTER TABLE [dbo].[kcb] ADD CONSTRAINT [DF_kcb_学分] DEFAULT ((0)) FOR [学分]
GO
ALTER TABLE [dbo].[xsb] ADD CONSTRAINT [DF_xsb_性别] DEFAULT ((1)) FOR [性别]
GO
ALTER TABLE [dbo].[xsb] ADD CONSTRAINT [DF_xsb_专业] DEFAULT ('计算机') FOR [专业]
GO
ALTER TABLE [dbo].[xsb] ADD CONSTRAINT [DF_xsb_总学分] DEFAULT ((0)) FOR [总学分]
GO
(桌面,随便哪个位置)新建文本文档—>改拓展名.udl —>提供程序里面选择Microsoft OLE DB Provider for SQL Server—>下一步(连接)
测试数据库是否连接成功,填写

点击确定(中间的和下面两个)
注意:由于当时下面的确定我没有点,直接关闭了这个页面,导致打开打开的记事本文件里面没有显示
之后以记事本的方式打开这个udl文件

显示(之后会使用这个里面的连接串)

在这个连接串中,Persist Security Info 属性为 True 时表示在建立连接后仍然保存密码,一般取 False 即可 。ID 和 Password 属性只有在上述数据库属性对话框中勾选“允许保存密码”时才会有 。自己可以手工添加 。pxscj 是我的数据库名 。
打开vs —> 创建空项目—>在项目中新建一个名为 main.cpp 的源文件 ,然后在这个文件中输入以下代码:
#import "c:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
#include <stdio.h> // wprintf
#include <locale.h> // setlocale
int main()
{
setlocale(LC_ALL, "chs");
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
try
{
}
catch (_com_error &err)
{
wprintf(L"The application throws the error: %s\n", (wchar_t*)err.ErrorMessage()); wprintf(L"Description = %s\n", (wchar_t*)err.Description());
}
CoUninitialize();
return 0;
}
点击调试—>选择开始执行(不调试)—>弹出黑框—>关闭
其中:
使用以下代码创建并打开一个连接对象 。
将下面代码粘贴到上面代码try块
_bstr_t ConnStr("Provider = SQLOLEDB.1; Persist Security Info = False; User ID = sa; Password = 123456; Initial Catalog = pxscj; Data Source = XT-PC");
_ConnectionPtr Conn(__uuidof(Connection));
Conn->Open(
ConnStr,
"",
"",
(long)0
);
其中:
在创建并打开了一个连接对象后,通过使用连接对象的 Execute 方法,几乎可以将任意的 SQL 语句作为其参数,从而可以完成很多数据库的操作(增 、删 、查 、改) 。比如:
Conn->Execute(
"UPDATE xsb SET 备注 = '外校互认学分课程', 总学分 = 总学分 + 3 WHERE 学号 = '231302'",
NULL,
(long)0);
对于查询这样的操作,则需要将连接对象 Execute 方法的调用结果返回给一个记录集对象 。
将上面代码粘贴至刚刚try里面(接着刚刚代码块)
点击调试—> 开始执行—>关闭
把刚刚udl用记事本打开的文件,红色框

复制,删贴到main.cpp文件里面try块
(把上面的连接串替换成自己的连接串)
调试—>执行 返回0 则运行成功
打开数据库
选择pxscj—>dbo_xsb—>选择前1000行

则会显示

在刚刚try代码里面,修改里面的数据

学号 = '191301' 修改学号为191301的信息
调试—>开始执行
显示

之后重新进行刚才的操作:
选择pxscj—>dbo_xsb—>选择前1000行
你会发现数据发生改变(跟上面的表图对比)备注和总学分被修改

一个记录集对象代表了一些记录的集合,比如一个查询命令的执行结果 。
_RecordsetPtr RecordsetObj(__uuidof(Recordset));
RecordsetObj = ConnObj->Execute(
"select * from xsb",
NULL,
(long)0);
wprintf(L"%s\n", (wchar_t*)RecordsetObj->GetString(adClipString, long(-1), "\t", "\n", ""));
其中:
复制上面代码
粘贴至刚刚try块里面:(删除选中部分再粘贴)

将try块里面的Conn改为ConnObj
然后:调试—>开始执行

如前所述,可以使用连接对象的 Execute 方法执行命令,如果有返回的记录集,可以将这个记录集返回给一个记录集对象 。使用 记录集对象的 Open 方法,也可以执行命令,但通常是有返回记录集的命令,比如执行 SELECT 语句 。
_bstr_t ConnStr("Provider = SQLOLEDB.1; Persist Security Info = False; User ID = sa; Password = 123456; Initial Catalog = pxscj; Data Source = XT-PC");
_ConnectionPtr ConnObj(__uuidof(Connection));
ConnObj->Open(
ConnStr,
"",
"",
NULL );
_RecordsetPtr RecordsetObj(__uuidof(Recordset));
RecordsetObj->Open(
"xsb",
ConnObj.GetInterfacePtr(),
adOpenForwardOnly,
adLockReadOnly,
adCmdTable);
wprintf(L"%s\n", (wchar_t*)RecordsetObj->GetString(adClipString, long(-1), "\t", "\n", ""));
在上述代码中,调用记录集对象 RecordsetObj 的 Open 方法,注意其中的几个参数:
删除整个try块里面的代码

将上面代码粘贴至此处
重复之前一个操作:
把刚刚udl用记事本打开的文件,红色框

复制,删贴到main.cpp文件里面try块
(把上面的连接串替换成自己的连接串)

调试—>开始执行

每个打开的记录集对象都有一个相应的游标,用于访问这个游标指向的一个记录 。