谁知道用c语言向数据库做增删改查吗?

谁知道用c语言向数据库做增删改查吗?,第1张

我曾经写过C语言的数据库系统..

给你部分代码(一个销售函数)以作参考...

void

book_out()

//销售函数

{

char

temp

EXEC

SQL

BEGIN

DECLARE

SECTION

/*主变量定义开始.*/

int

Hout_shuliang

int

Hshuliang///////////

char

Hbook_id[11]

EXEC

SQL

END

DECLARE

SECTION

/*主变量定义结束*/

lab3:

printf("请输入图书编号:")

scanf("%s",&Hbook_id)

printf("请输入卖出本数:")

scanf("%d",&Hout_shuliang)

//先将库存量取出到主变量

EXEC

SQL

select

book_shuliang

into

:Hshuliang

from

book_kucun

where

book_id=:Hbook_id

if(Hshuliang<Hout_shuliang)

//假如库存不足,销售不成功.

{

printf("输入有误.没那么多库存,请重新输入.\n")

goto

lab3

}

//将销售记录插入到book_out(销售表)数据表.

EXEC

SQL

insert

into

book_out

values(:Hbook_id,:Hout_shuliang,GETDATE())

EXEC

SQL

COMMIT

TRANSACTION

/*事务提交*/

printf("售出成功,输入Y继续输入其他要售出的书.其他键返回主菜单:")

getchar()//////////////////////////

scanf("%c",&temp)

if(temp=='y'||temp=='Y')

goto

lab3

}

要用到using System.Data.SqlClient//命名空间

SQL 查询

string connection_str=@"Integrated Security=SSPIPersist Security Info=FalseInitial Catalog=ChatRoomData Source=.\sqlexpress"

string select_str="select 字段 from 表名 [where 字段=值]"//"[之间的内容]"是可选的

SqlConnection con=new SqlConnection(connection_str)//一,创建数据库连接对象

SqlCommand com=new SqlCommand(select_str,con)//二,创建数据 *** 作对象

con.Open()//现在用的是连接 *** 作方法,所以要先打开这个数据连接对象的连接

DataReader _dataReader = com.ExcuteReader()

while(_dataReader.Next())//遍历

{

string temp += dataReader["字段"].ToString()+"\r\n"

}

con.Close()//关闭数据库连接对象

MessageBox.Show(temp)

以上这种方法是称为连接式 *** 作。

以下这种方法是称为非连接式 *** 作。

using System.Data.SqlClient//因为要用到SQL对象

using System.Data//要用到数据集对象,如以下将要用到:DataSet对象

string connection_str=@"Integrated Security=SSPIPersist Security Info=FalseInitial Catalog=ChatRoomData Source=.\sqlexpress"

string select_str="select 字段 from 表名 [where 字段=值]"//"[之间的内容]"是可选的

SqlConnection con=new SqlConnection(connection_str)//一,创建数据库连接对象

SqlDataAdapter DataAdapter=new SqlDataAdapter(select_str,con)//二,创建数据 *** 作对象

DataSet ds=new DataSet()

DataAdapter.Fill(ds)//DataAdapter.Fill(填充对象)//函数是将除处理的select_str语句得来结果填充到指定的填充对象

string temp=""

foreact(DataRow dr in ds.Table[0].Rows)//遍历

{

temp+=dr["字段"].ToString()

}

MessageBox.Show(temp)

至少楼主说的要增删改查。

就是修改select_str字符串就行了。

select(查询):"Select 字段 from 表名 [where 条件]"

update(更新):"Update 列名 set 字段=值 [where 条件]"

insert(插入):"Insert [into] 表名 Values(字段[,字段,...,...]) [where 条件]"

delete(删除):"delect from 表名 [where 条件]"

当然,除了select(查询)是有返回数据,其它update(更新),insert(插入),delete(删除)都只是返回 *** 作状态值。

用datagridview吧

using System.data.sqldataclient(纯手写的,没用工具,你自己再整理下)

usint System.data

sqldatareader sdr//声明读取器

sqlcommand com//command对象

sqlconnection con=new sql

("server=.databse=你的数据库名字",uid=你登录数据库的用户名,pwd=数据库密码)//连接字符串

datagridview//取名dgvDateTimeInfo

//读数据库里的数据 窗体加载事件里写

//sql 语句

string sql="select 你要的字段名 from 字段所在的表名"

com=new sqlcommand(sql,con)

con.open()

sdr=com.sqldatareader()

while(sdr.read())

{

datatime datagridview中数据对应列的名=sdr["数据所在的列名"]//注意数据类型,其它的列也是这样读取

}

sdr.close()

con.close()

//然后在datagridview中找到DataPropertyName指定数据所在数据库中的列名实现数据的绑定

//双击显示数据详细信息

//不知道你数据库中的标识列是什么,什么类型的,现在就以INT类型为例

int no=convert.toint32(dgvDateTimeInfo.selectrow[0].cells["标识列名"].value)

string sql="select * from 表名 where 标识列名=no"

//接下来的和前面的一样,只是列多了一些

com=new sqlcommand(sql,con)

con.open()

sdr=com.sqldatareader()

while(sdr.read())

{

接收数据的控件的text属性=(记的数据的转换)sdr["数据所在的列名"]//注意数据类型,其它的列也是这样读取

}

sdr.close()

con.close()

//如果用3层面向对象的思维来做会很简单


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

原文地址:https://54852.com/sjk/10827704.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存