
给你部分代码(一个销售函数)以作参考...
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层面向对象的思维来做会很简单
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)