C# 如何向ACCESS数据库添加记录(实际情况)?

C# 如何向ACCESS数据库添加记录(实际情况)?,第1张

String sql = "insert into 表名(字段1,字段2) values( '" + 字段1对应的值+ "' , '" + 字段2对应的值 + "')"

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

注:对连接查询,可以先创建视图,再对视图进行查询。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11936019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存