String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=|DataDirectory|\\data.mdb"
OleDbConnection connection = new OleDbConnection(connectionString)
OleDbCommand cmd = new OleDbCommand(sql,connection)
connection.Open()
if (cmd.ExecuteNonQuery() >0)//判断插入数据是否成功 { //执行要 *** 作的语句 }
一个教材管理系统,给你参考下void shumingsearch(struct book *head) /*按教材名称查找*/
{ struct book *p
char name[20]
int c
if(head==NULL) {printf("未打开任何文件")getchar()return}
printf("1,查找专业 2,查找教材名称:")
scanf("%d",&c)
getchar()
if(c==2)
printf("请输入要查找的教材名称:")
else printf("请输入要查找的专业:")
gets(name)
p=head
do{ if(c==2)
if(strcmp(p->shuming,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)
}
if(c==1)
if(strcmp(p->zhuanye,name)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)
}
p=p->next
}while(p!=NULL)
printf("查找完成")
return
}
struct book *add(struct book *head) /*增加记录*/
{ struct book *p,*e,*f,*h
if(head==NULL) {printf("未打开任何文件")getchar()return NULL}
h=f=e=head
p=(struct book *)malloc(sizeof(struct book))
printf("\n教材编号:")
gets(p->number)
printf("\n教材名称:")
gets(p->shuming)
printf("\n数量:")
scanf("%d",&p->shuliang)
printf("\n价格:")
scanf("%d",&p->jiage)
getchar()
printf("\n专业:")
gets(p->zhuanye)
printf("\n作者:")
gets(p->zuozhe)
printf("\n出版社:")
gets(p->chubanshe)
printf("\n备注:")
gets(p->beizhu)
if(strcmp(f->number,p->number)>0) { p->next=fh=pprintf("\n添加成功")return h}
if(f->next==NULL) { f->next=pp->next=NULLprintf("\n添加成功")return h}
do{
if(f->next!=NULL)
if(strcmp(f->number,p->number)>0)
{
e->next=pp->next=fprintf("\n添加成功")return h
}
if(f->next==NULL)
{
f->next=p
p->next=NULL
printf("\n添加成功")
return h
}
f=f->next
e=e->next
}while(1)
}
struct book *delet(struct book *head) /*删除记录*/
{ struct book *p,*e
char num[20]
if(head==NULL) {printf("未打开任何文件")getchar()return NULL}
printf("请输入要删除的教材编号:")
scanf("%s",num)
p=e=head
if(strcmp(p->number,num)==0) { head=head->nextprint(head)return head}
else p=p->next
do{
if(strcmp(p->number,num)==0)
{
if(p->next!=NULL)
e->next=p->next
if(p->next==NULL) e->next=NULL
print(head)
return head
}
p=p->next
e=e->next
}while(p!=NULL)
printf("搜索完毕,未找到该记录")
return head
}
struct book *change(struct book *head) /*修改记录*/
{ struct book *p
char num[20]
if(head==NULL) {printf("未打开任何文件")getchar()return NULL}
printf("请输入要修改的教材编号:")
scanf("%s",num)
getchar()
p=head
do{
if(strcmp(p->number,num)==0)
{
printf("教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n",p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu)
printf("\n教材编号:")
gets(p->number)
printf("\n教材名称:")
gets(p->shuming)
printf("\n数量:")
scanf("%d",&p->shuliang)
printf("\n价格:")
scanf("%d",&p->jiage)
getchar()
printf("\n专业:")
gets(p->zhuanye)
printf("\n作者:")
gets(p->zuozhe)
printf("\n出版社:")
gets(p->chubanshe)
printf("\n备注:")
gets(p->beizhu)
printf("修改成功")
return head
}
p=p->next
}while(p!=NULL)
printf("未找到要修改的记录")
return head
}
int mima()
{ FILE *fp
char mima1[20],mima2[20]
if((fp=fopen("mima","r"))==NULL)
{ printf("尚未设置密码请输入:")
scanf("%s",mima1)
printf("请再次输入密码:")
scanf("%s",mima2)
if(strcmp(mima1,mima2)!=0) { printf("两次密码不一样")return 0}
else {
fp=fopen("mima","w")
fprintf(fp,"%s",mima1)
printf("密码设置成功")
return 1
}
}
printf("请输入初始化密码:")
scanf("%s",mima1)
fscanf(fp,"%s",mima2)
if(strcmp(mima1,mima2)==0)
{
printf("密码正确")
printf("请输入要删除的文件名:")
scanf("%s",mima1)
if(remove(mima1)==0)
{
printf("删除成功")
getchar()
return 1
}
else {
printf("删除失败,请检查是否存在该文件或路径是否正确")
getchar()
return 0
}
}
else {
printf("密码错误")
getchar()
return 0
}
}
void main()
{
struct book *head=NULL
char i
getch()
system("cls")
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n")
printf("m--菜单 h--帮助")
printf("\n请输入命令:")
i=getch()
if(i=='h')
{ printf("\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)")
getch()
break
}
if(i=='m')
break
system("cls")
}while(i!='m'||i!='h')
system("cls")
do{
printf(" ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n")
printf("┌————-———┐\n")
printf("│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录│\n│s,初始化系统 │\n│e,退出系统│\n")
printf("└———————-┘\n")
printf("\n请输入功能编号:")
i=getch()
system("cls")
switch(i)
{
case '1': head=creat()save(head)break
case '2': print(head)break
case '3': head=openfile()break
case '4': system("cls")
printf("┌————-———┐\n")
printf("│1,增加一个记录│\n")
printf("│2,删除一个记录│\n")
printf("│3,修改一个记录│\n")
printf("└———————-┘\n")
i=getch()
switch(i)
{
case '1':
head=add(head)break
case '2':
head=delet(head)break
case '3': head=change(head)break
default: break
}
break
case '5': save(head)break
case '6': shumingsearch(head)break
case 's': mima()break
case 'e': exit(0)
default :break
}
system("cls")
}while(1)
}
用VC中的MFC吧,很好上手#include <afxdb.h>
/* 连接数据库 */
CDatabase db
BOOL bRtn
try {
bRtn = db.OpenEx("DSN=数据源名UID=sa", CDatabase::noOdbcDialog)
}catch (CDBException *pDBEx) {
pDBEx->ReportError()
}catch (CMemoryException *pMemEx) {
pMemEx->ReportError()
}
if (!bRtn)
printf("连接数据库失败!")
/* *** 作结束后,关闭数据库 */
db.Close()
添加记录 *** 作
#include <afxdb.h>
CDatabase db
BOOL bRtn
CString sql
/* 1、连接数据库,见(1) */
/* 2、生成INSERT语句,赋给sql,例如: */
sql = "insert into student_table (s_sID, s_sName, s_sAge) values (‘001’, ‘ZhangSan’, 20)"
/* 3、往数据库中添加纪录 */
try {
db.ExecuteSQL(sql)
} catch (CDBException *pDBEx) {
pDBEx->ReportError()
}
/* 4、关闭数据库 */
db.Close()
删除记录 *** 作
#include <afxdb.h>
CDatabase db
BOOL bRtn
CString sql
/* 1、连接数据库,见(1) */
/* 2、生成DELETE语句,赋给sql,例如: */
sql = "delete from student_table where s_SID =’001’"
/* 3、从数据库中删除纪录 */
try {
db.ExecuteSQL(sql)
} catch (CDBException *pDBEx) {
pDBEx->ReportError()
}
/* 4、关闭数据库 */
db.Close()
修改记录 *** 作
#include <afxdb.h>
CDatabase db
BOOL bRtn
CString sql
/* 1、连接数据库,见(1) */
/* 2、生成UPDATE语句,赋给sql,例如: */
sql = "update from student_table set s_sName=‘LiSi’,s_sAge=21 where s_SID =‘001’"
/* 3、更新数据库中的纪录 */
try {
db.ExecuteSQL(sql)
} catch (CDBException *pDBEx) {
pDBEx->ReportError()
}
/* 4、关闭数据库 */
db.Close()
查询、统计 *** 作
#include <myRecordset.h>
CDatabase db
BOOL bRtn
CString sql
/* 1、连接数据库,见(1) */
/* 2、生成查询/统计语句,赋给sql,例如: */
sql = "Select * From student_table where s_sAge=20"
/* 3、打开记录集,查询/统计 */
CMyRecordset rs(&db)
try {
bRtn = rs.Open(CRecordset::snapshot,sql)
} catch(CDBException *pDBEx) {
pDBEx->ReportError()
} catch(CMemoryException *pMemEx) {
pMemEx->ReportError()
}
if(!bRtn) {
AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR)
return
}
/* 4、逐条获取查询结果 */
for(rs.MoveFirst()!rs.IsEOF()rs.MoveNext()) {
// TODO: Add code here
}
/* 5、关闭记录集、数据库 */
rs.Close()
db.Close()
注:对连接查询,可以先创建视图,再对视图进行查询。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)