2023年6月21日发(作者:)
WPF字符串SQL命令的增删改与存储过程的增删改1.⽬的与要实现的功能和截图功能:实现SQL命令的增删改;实现SQL的存储过程的增删改;⽬的:熟悉WPF与SQL连接的操作; 掌握SQL命令的增删改的⽅式; 掌握存储过程增删改的⽅式; ⽐较两种⽅式的不同。效果截图:SQL命令增删改界⾯---
存储过程增删改界⾯:
2.步骤和思路先测试Sql命令的增删改(新建⼀个类前台设置---------后台设置)
再测试存储过程的增删改(新建⼀个类----------新建⼀个窗⼝,前台编辑--------后台编辑)
然后再主界⾯放置⼀个按钮,跳转到存储过程增删改的窗⼝。
命令增删改代码 ⽂件:using System;using c;using ;using ;using uration;//using ent;using s;using ;//namespace WpfDataGridAdoTest{
public class DBSimple { private SqlConnection con; public DBSimple() { string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket"; con = new SqlConnection(str); } public void TestExecuteNonQuery_Insert(string id, string name) { if (con == null) return; string sql = "insert 员⼯信息 values('" + id + "','" + name + "')"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } public void TestExecuteNonQuery_Delete(string id) { if (con == null) return; string sql = "delete from 员⼯信息 where 员⼯ID='" + id + "'"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } public void TestExecuteNonQuery_Update(string id, string name) { if (con == null) return; string sql = "update 员⼯信息 set 员⼯姓名='" + name + "' where 员⼯ID='" + id + "'"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } }}View Code
: /> Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/员⼯姓名}"/>
g System;using c;using ;using ;using s;using ls;using ;using nts;using ;using ;using g;using tion;using ;using ent;using ;namespace WpfDataGridAdoTest{ ///
} private void button1_Click(object sender, RoutedEventArgs e) { string id = ; string name = ; ecuteNonQuery_Insert(id, name); ("插⼊数据成功!");//真实的把数据插⼊进数据库了。。⽤的是连接字符串的⽅式。如果是添加数据库⽂件到⼯程,没有办法真正把数据插⼊到数据库。 LoadDataGrid(); } private void button3_Click(object sender, RoutedEventArgs e) { string id = ; string name = ; ecuteNonQuery_Update(id, name); ("更新数据成功!"); LoadDataGrid(); } private void button2_Click(object sender, RoutedEventArgs e) { string id = ; ecuteNonQuery_Delete(id); ("删除数据成功!"); LoadDataGrid(); } private void button4_Click(object sender, RoutedEventArgs e) { TestProc tp = new TestProc(); (); }
}}View Code4.存储过程增删改代码⽂件:using System;using c;using ;using ;using ent;using ;namespace WpfDataGridAdoTest{ public interface Proc {
void 增加部门信息(string 部门ID, string 部门名称); void 删除部门信息(string 部门ID); void 更新部门信息(string 部门ID, string 部门名称); } public class TestDataSet1 : Proc { private SqlConnection conn; public TestDataSet1() { string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket;"; conn = new SqlConnection(str); }//构造函数SQL的连接字符串
public void 增加部门信息(string 部门ID, string 部门名称) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("增加部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 (new SqlParameter("@部门名称", , 20)).Value = 部门名称; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } public void 删除部门信息(string 部门ID) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("删除部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } public void 更新部门信息(string 部门ID, string 部门名称) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("更新部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 (new SqlParameter("@部门名称", , 20)).Value = 部门名称; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } }}View Code
: Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/部门名称}"/>
g System;using c;using ;using ;using s;using ls;using ;using nts;using ;using ;using g;using ;using ent;using ;namespace WpfDataGridAdoTest{ ///
}}View Code
5.各个部分粗略的作⽤解释⽂件:定义了⼀个公开的类DBsimple,类⾥⾯分两部分。第⼀配置连接到数据库的字符串,第⼆是增删改功能实现的代码。
:很简单,需要注意的是DataGrid的这⼏个属性AutoGenerateColumns="True" IsSynchronizedWithCurrentItem="True" IsReadOnly="True"。。其中AutoGenerateColumns是允许⾃动⽣成列,只有设置这个值为真,我们后台才能实现数据实时绑定。IsSynchronizedWithCurrentItem是让数据和TextBox双向动态显⽰。 IsReadOnly让它为只读状态。。。。。然后就是TEXTBOX的绑定。
:定义⼀个私有的⽆参数⽅法(查询员⼯信息),然后打开软件即默认加载这个⽆参数⽅法。然后就是⼏个按钮的功能实现。
⽂件:这个是定义的接⼝来实现。在接⼝实现⽅法⾥,⾸先配置连接数据库的字符串,然后是存储过程的增删改的带参数的公开⽅法。
:这也没什么好讲的,同。 :⼏乎是照搬。没什么特别。
5.存储过程代码use SuperMarket;gocreate proc 增加部门信息@部门ID char(6),@部门名称 nvarchar(20)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
insert into 部门信息 values(@部门ID,@部门名称); if @errorSum<>0 rollback transaction; else commit transaction;endgo------插⼊use SuperMarket;gocreate proc 删除部门信息@部门ID char(6)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
delete from 部门信息 where 部门ID=@部门ID; if @errorSum<>0 rollback transaction; else commit transaction;endgo----删除create proc 更新部门信息@部门ID char(6),@部门名称 nvarchar(20)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
update 部门信息 set 部门名称=@部门名称 where 部门ID=@部门ID; if @errorSum<>0 rollback transaction; else commit transaction;endgo----更新View Code
6.完整的数据库基础代码use master;gocreate database SuperMarketgouse SuperMarket;go/*==============================================================*//* Table: 岗位信息 *//*==============================================================*/create table 岗位信息 ( 岗位ID char(6) primary key, 岗位名称 nvarchar(20)
)go/*==============================================================*//* Table: 员⼯信息 *//*==============================================================*/create table 员⼯信息 ( 员⼯ID char(6) primary key, 员⼯姓名 nvarchar(20)
)go/*==============================================================*//* Table: 员⼯岗位信息 *//*==============================================================*/create table 员⼯岗位信息 ( ID int identity(1,1) primary key, 员⼯ID char(6)
constraint fk_员⼯岗位信息_员⼯ID foreign key references 员⼯信息(员⼯ID), 岗位ID char(6)
constraint fk_员⼯岗位信息_岗位ID foreign key references 岗位信息(岗位ID))go/*==============================================================*//* Table: 供应商信息 *//*==============================================================*/create table 供应商信息 ( 供应商ID char(6) primary key, 供应商名称 nvarchar(20)
)go/*==============================================================*//* Table: 客户信息 *//*==============================================================*/create table 客户信息 ( 客户ID char(6) primary key, 客户名称 nvarchar(20) null)go/*==============================================================*//* Table: 部门信息 *//*==============================================================*/create table 部门信息 ( 部门ID char(6) primary key, 部门名称 nvarchar(20)
)go/*==============================================================*//* Table: 部门员⼯信息 *//*==============================================================*/create table 部门员⼯信息 ( ID int identity(1,1) primary key, 员⼯ID char(6)
constraint fk_部门员⼯信息_员⼯ID foreign key references 员⼯信息(员⼯ID), 部门ID char(6)
constraint fk_部门员⼯信息_部门ID foreign key references 部门信息(部门ID))go/*==============================================================*//* Table: 商品信息 *//*==============================================================*/create table 商品信息 ( 商品ID char(13) primary key, /*EAN-13条码:13位*/
制造商ID char(6)
constraint fk_商品信息_供应商ID foreign key references 供应商信息(供应商ID), 商品名称 nvarchar(20) , 计量单位 nchar(6)
)go/*==============================================================*//* Table: 仓库信息 *//*==============================================================*/create table 仓库信息 ( 仓库ID char(6) primary key, 仓库名称 nvarchar(20) , 仓库地址 text
)go/*==============================================================*//* Table: 库存信息 *//*==============================================================*/create table 库存信息 ( 商品ID char(13) primary key,/*商品ID中包含了商品信息、⽣产⼚家、⽣产时间以及有效期信息,同意名称的商品将有可能采⽤不同的商品ID*/ 仓库ID char(6)
constraint fk_库存信息_仓库ID foreign key references 仓库信息(仓库ID), ⼊库均价 decimal(12,2) null,/* 库存信息中的⼊库均价,需要对多次⼊库时商品的价格进⾏平均,并且需要考虑计量单位和计量因⼦*/
当前数量 decimal(12,2) ,/* 库存信息中的当前数量针对的计量单位只能按《商品信息》表中的计量单位执⾏ (计量因⼦=1)*/
constraint fk_库存信息_商品ID foreign key(商品ID) references 商品信息(商品ID))go/*==============================================================*//* Table: 采购信息 *//*==============================================================*/create table 采购信息 ( 采购单ID char(12) primary key, 采购⽇期 datetime , 采购部门ID char(6)
constraint fk_采购信息_采购部门ID foreign key references 部门信息(部门ID), 采购员ID char(6)
constraint fk_采购信息_采购员ID foreign key references 员⼯信息(员⼯ID), 供应商ID char(6) null
constraint fk_采购信息_供应商ID foreign key references 供应商信息(供应商ID),)go/*==============================================================*//* Table: 采购明细 *//*==============================================================*/create table 采购明细 ( 采购明细ID UNIQUEIDENTIFIER default(newid()) primary key, 采购单ID char(12)
constraint fk_采购明细_采购单ID foreign key references 采购信息(采购单ID), 商品ID char(13)
constraint fk_采购明细_商品ID foreign key references 商品信息(商品ID), 计量单位 nchar(6) , /* 采购时的计量单位可以根据实际情况输⼊ */
计量因⼦ decimal(12,2) , /* 计量因⼦是采购时的计量单位与《商品信息》表中该商品计量单位的⽐值 */
采购数量 decimal(12,2) , /* 按采购计量单位计算数量 */ 采购单价 decimal(12,2) /* 按采购计量单位计算数量 */
)/*==============================================================*//* Table: ⼊库信息 *//*==============================================================*/create table ⼊库信息 ( ⼊库单ID char(12) primary key, ⼊库⽇期 datetime , 库管员ID char(6) constraint fk_⼊库信息_库管员ID foreign key references 员⼯信息(员⼯ID), ⼊库部门ID char(6) , /*内部⼊库,如⽣产部等(产品,半成品) */
部门代表ID char(6)
constraint fk_⼊库信息_部门代表ID foreign key references 员⼯信息(员⼯ID), 采购单ID char(12) null /*采购⼊库,如采购部等 */ constraint fk_⼊库信息_采购单ID foreign key references 采购信息(采购单ID),
备注 text null /* 说明⼊库事由 */)go/*==============================================================*//* Table: ⼊库明细 *//*==============================================================*/create table ⼊库明细 ( ⼊库明细ID UNIQUEIDENTIFIER default(newid()) primary key, ⼊库单ID char(12)
constraint fk_⼊库明细_⼊库单ID foreign key references ⼊库信息(⼊库单ID), 商品ID char(13)
constraint fk_⼊库明细_商品ID foreign key references 商品信息(商品ID), ⼊库数量 decimal(12,2) , ⼊库单价 decimal(12,2) null)go/*==============================================================*//* Table: 销售信息 *//*==============================================================*/create table 销售信息 ( 销售单ID char(12) primary key, 销售⽇期 datetime , 销售部门ID char(6)
constraint fk_销售信息_部门ID foreign key references 部门信息(部门ID), 客户ID char(6)
constraint fk_销售信息_客户ID foreign key references 客户信息(客户ID)
)go/*==============================================================*//* Table: 销售明细 *//*==============================================================*/create table 销售明细 ( 销售明细ID UNIQUEIDENTIFIER default(newid()) primary key, 销售单ID char(12) constraint fk_销售明细_销售单ID foreign key references 销售信息(销售单ID), 商品ID char(13)
constraint fk_销售明细_商品ID foreign key references 商品信息(商品ID), 销售数量 decimal(12,2) ,
销售单价 decimal(12,2)
)/*==============================================================*//* Table: 出库信息 *//*==============================================================*/create table 出库信息 ( 出库单ID char(12) primary key,
仓库ID char(6), 出库⽇期 datetime , 出库部门ID char(6) null/*内部领⽤或调拨出库,如⽣产部等(半成品) */ constraint fk_出库信息_部门ID foreign key references 部门信息(部门ID), 销售单ID char(12) null/*销售出库,如销售部等 */ constraint fk_出库信息_销售单ID foreign key references 销售信息(销售单ID), 备注 text null/* 说明出库事由 */)go/*==============================================================*//* Table: 出库明细 *//*==============================================================*/create table 出库明细 ( 出库明细ID UNIQUEIDENTIFIER default(newid()) primary key, 出库单ID char(12)
constraint fk_出库明细_出库单ID foreign key references 出库信息(出库单ID), 商品ID char(13)
constraint fk_出库明细_商品ID foreign key references 商品信息(商品ID), 出库数量 decimal(12,2) ,
出库单价 decimal(12,2) null
)go/*==============================================================*//* Type: 采购明细临时表 *//*==============================================================*/create type 采购明细临时表 as Table
(
商品ID char(13) , 计量单位 nchar(6) , /* 采购时的计量单位可以根据实际情况输⼊ */
计量因⼦ decimal(12,2) , /* 计量因⼦是采购时的计量单位与《商品信息》表中该商品计量单位的⽐值 */
采购数量 decimal(12,2) , /* 按采购计量单位计算数量 */ 采购单价 decimal(12,2) /* 按采购计量单位计算数量 */)
/*==============================================================*//* Type: ⼊库明细临时表 *//*==============================================================*/create type ⼊库明细临时表 as Table
(
商品ID char(13) , ⼊库数量 decimal(12,2) ,/* ⼊库时的计量单位《商品信息》表中该商品计量单位计算,计量因⼦=1 ⼊库单价*/ ⼊库单价 decimal(12,2) null/* ⼊库单价按《商品信息》中该商品计量单位对应的⼊库价格计算 */)
Go/*==============================================================*//* Type: 出库明细临时表 *//*==============================================================*/create type 出库明细临时表 as Table
(
商品ID char(13) ,
出库数量 decimal(12,2) , /* 出库数量的计量单位按《商品信息》表中的计量单位计算 */ 出库单价 decimal(12,2) null /* 出库单价按《商品信息》表中的计量单位,以及出库时该商品的库存均价计算 */)
Go/*==============================================================*//* Type: 销售明细临时表 *//*==============================================================*/create type 销售明细临时表 as Table
(
商品ID char(13) ,
销售数量 decimal(12,2) , /* 销售数量的计量单位按《商品信息》表中的计量单位计算 */
销售单价 decimal(12,2) null /* 销售单价按《商品信息》表中的计量单位的销售单价计算 */)
Go
use SuperMarket;goinsert into 岗位信息 values('W0','经理');insert into 岗位信息 values('W1','⽣产员');insert into 岗位信息 values('W2','销售员');insert into 岗位信息 values('W3','采购员');insert into 岗位信息 values('W4','库管员');goinsert into 员⼯信息 values('Y00','张经理')insert into 员⼯信息 values('Y01','⽣产员1');insert into 员⼯信息 values('Y02','⽣产员2');insert into 员⼯信息 values('Y03','销售员1');insert into 员⼯信息 values('Y04','销售员2');insert into 员⼯信息 values('Y05','采购员1');insert into 员⼯信息 values('Y06','采购员2');insert into 员⼯信息 values('Y07','库管员1');insert into 员⼯信息 values('Y08','库管员2');goinsert into 员⼯岗位信息 values('Y00','W0');insert into 员⼯岗位信息 values('Y01','W1');insert into 员⼯岗位信息 values('Y02','W1');insert into 员⼯岗位信息 values('Y03','W2');insert into 员⼯岗位信息 values('Y04','W2');insert into 员⼯岗位信息 values('Y05','W3');insert into 员⼯岗位信息 values('Y06','W3');insert into 员⼯岗位信息 values('Y07','W4');insert into 员⼯岗位信息 values('Y08','W4');goinsert into 客户信息 values('K01','匿名');insert into 客户信息 values('K02','张三');insert into 客户信息 values('K03','李四');goinsert into 供应商信息 values('G01','伊利');insert into 供应商信息 values('G02','蒙⽜');goinsert into 部门信息 values('D00','办公室');insert into 部门信息 values('D01','⽣产部');insert into 部门信息 values('D02','销售部');insert into 部门信息 values('D03','采购部');insert into 部门信息 values('D04','仓储部');goinsert into 仓库信息 values('CK01','成品仓库1','地址1');insert into 仓库信息 values('CK02','成品仓库2','地址2')goinsert into 部门员⼯信息 values('Y00','D00');insert into 部门员⼯信息 values('Y01','D01');insert into 部门员⼯信息 values('Y02','D01');insert into 部门员⼯信息 values('Y03','D02');insert into 部门员⼯信息 values('Y04','D02');insert into 部门员⼯信息 values('Y05','D03');insert into 部门员⼯信息 values('Y06','D03');insert into 部门员⼯信息 values('Y07','D04');insert into 部门员⼯信息 values('Y08','D04');goINSERT INTO 商品信息 VALUES('m0001','G01','250ML伊利⽜奶','盒');INSERT INTO 商品信息 VALUES('m0002','G01','1000ML伊利⽜奶','盒');INSERT INTO 商品信息 VALUES('m0003','G02','250ML蒙⽜⽜奶','盒');INSERT INTO 商品信息 VALUES('m0004','G02','1000ML蒙⽜⽜奶','盒');goView Code
2023年6月21日发(作者:)
WPF字符串SQL命令的增删改与存储过程的增删改1.⽬的与要实现的功能和截图功能:实现SQL命令的增删改;实现SQL的存储过程的增删改;⽬的:熟悉WPF与SQL连接的操作; 掌握SQL命令的增删改的⽅式; 掌握存储过程增删改的⽅式; ⽐较两种⽅式的不同。效果截图:SQL命令增删改界⾯---
存储过程增删改界⾯:
2.步骤和思路先测试Sql命令的增删改(新建⼀个类前台设置---------后台设置)
再测试存储过程的增删改(新建⼀个类----------新建⼀个窗⼝,前台编辑--------后台编辑)
然后再主界⾯放置⼀个按钮,跳转到存储过程增删改的窗⼝。
命令增删改代码 ⽂件:using System;using c;using ;using ;using uration;//using ent;using s;using ;//namespace WpfDataGridAdoTest{
public class DBSimple { private SqlConnection con; public DBSimple() { string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket"; con = new SqlConnection(str); } public void TestExecuteNonQuery_Insert(string id, string name) { if (con == null) return; string sql = "insert 员⼯信息 values('" + id + "','" + name + "')"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } public void TestExecuteNonQuery_Delete(string id) { if (con == null) return; string sql = "delete from 员⼯信息 where 员⼯ID='" + id + "'"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } public void TestExecuteNonQuery_Update(string id, string name) { if (con == null) return; string sql = "update 员⼯信息 set 员⼯姓名='" + name + "' where 员⼯ID='" + id + "'"; SqlCommand cmd = new SqlCommand(sql, con); if ( == ) (); try { eNonQuery(); } catch (SqlException ex) { (e); } } }}View Code
: /> Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/员⼯姓名}"/>
g System;using c;using ;using ;using s;using ls;using ;using nts;using ;using ;using g;using tion;using ;using ent;using ;namespace WpfDataGridAdoTest{ ///
} private void button1_Click(object sender, RoutedEventArgs e) { string id = ; string name = ; ecuteNonQuery_Insert(id, name); ("插⼊数据成功!");//真实的把数据插⼊进数据库了。。⽤的是连接字符串的⽅式。如果是添加数据库⽂件到⼯程,没有办法真正把数据插⼊到数据库。 LoadDataGrid(); } private void button3_Click(object sender, RoutedEventArgs e) { string id = ; string name = ; ecuteNonQuery_Update(id, name); ("更新数据成功!"); LoadDataGrid(); } private void button2_Click(object sender, RoutedEventArgs e) { string id = ; ecuteNonQuery_Delete(id); ("删除数据成功!"); LoadDataGrid(); } private void button4_Click(object sender, RoutedEventArgs e) { TestProc tp = new TestProc(); (); }
}}View Code4.存储过程增删改代码⽂件:using System;using c;using ;using ;using ent;using ;namespace WpfDataGridAdoTest{ public interface Proc {
void 增加部门信息(string 部门ID, string 部门名称); void 删除部门信息(string 部门ID); void 更新部门信息(string 部门ID, string 部门名称); } public class TestDataSet1 : Proc { private SqlConnection conn; public TestDataSet1() { string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket;"; conn = new SqlConnection(str); }//构造函数SQL的连接字符串
public void 增加部门信息(string 部门ID, string 部门名称) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("增加部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 (new SqlParameter("@部门名称", , 20)).Value = 部门名称; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } public void 删除部门信息(string 部门ID) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("删除部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } public void 更新部门信息(string 部门ID, string 部门名称) { DataSet ds = new DataSet(); if (conn == null) return; SqlCommand cmd = new SqlCommand("更新部门信息", conn); (new SqlParameter("@部门ID", , 6)).Value = 部门ID; //输⼊参数 (new SqlParameter("@部门名称", , 20)).Value = 部门名称; //输⼊参数 dType = Procedure; if ( == ) (); try { eNonQuery(); } catch (Exception ex) { } } }}View Code
: Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/部门名称}"/>
g System;using c;using ;using ;using s;using ls;using ;using nts;using ;using ;using g;using ;using ent;using ;namespace WpfDataGridAdoTest{ ///
}}View Code
5.各个部分粗略的作⽤解释⽂件:定义了⼀个公开的类DBsimple,类⾥⾯分两部分。第⼀配置连接到数据库的字符串,第⼆是增删改功能实现的代码。
:很简单,需要注意的是DataGrid的这⼏个属性AutoGenerateColumns="True" IsSynchronizedWithCurrentItem="True" IsReadOnly="True"。。其中AutoGenerateColumns是允许⾃动⽣成列,只有设置这个值为真,我们后台才能实现数据实时绑定。IsSynchronizedWithCurrentItem是让数据和TextBox双向动态显⽰。 IsReadOnly让它为只读状态。。。。。然后就是TEXTBOX的绑定。
:定义⼀个私有的⽆参数⽅法(查询员⼯信息),然后打开软件即默认加载这个⽆参数⽅法。然后就是⼏个按钮的功能实现。
⽂件:这个是定义的接⼝来实现。在接⼝实现⽅法⾥,⾸先配置连接数据库的字符串,然后是存储过程的增删改的带参数的公开⽅法。
:这也没什么好讲的,同。 :⼏乎是照搬。没什么特别。
5.存储过程代码use SuperMarket;gocreate proc 增加部门信息@部门ID char(6),@部门名称 nvarchar(20)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
insert into 部门信息 values(@部门ID,@部门名称); if @errorSum<>0 rollback transaction; else commit transaction;endgo------插⼊use SuperMarket;gocreate proc 删除部门信息@部门ID char(6)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
delete from 部门信息 where 部门ID=@部门ID; if @errorSum<>0 rollback transaction; else commit transaction;endgo----删除create proc 更新部门信息@部门ID char(6),@部门名称 nvarchar(20)asbegin DECLARE @errorSum int; set @errorSum=0; begin transaction
update 部门信息 set 部门名称=@部门名称 where 部门ID=@部门ID; if @errorSum<>0 rollback transaction; else commit transaction;endgo----更新View Code
6.完整的数据库基础代码use master;gocreate database SuperMarketgouse SuperMarket;go/*==============================================================*//* Table: 岗位信息 *//*==============================================================*/create table 岗位信息 ( 岗位ID char(6) primary key, 岗位名称 nvarchar(20)
)go/*==============================================================*//* Table: 员⼯信息 *//*==============================================================*/create table 员⼯信息 ( 员⼯ID char(6) primary key, 员⼯姓名 nvarchar(20)
)go/*==============================================================*//* Table: 员⼯岗位信息 *//*==============================================================*/create table 员⼯岗位信息 ( ID int identity(1,1) primary key, 员⼯ID char(6)
constraint fk_员⼯岗位信息_员⼯ID foreign key references 员⼯信息(员⼯ID), 岗位ID char(6)
constraint fk_员⼯岗位信息_岗位ID foreign key references 岗位信息(岗位ID))go/*==============================================================*//* Table: 供应商信息 *//*==============================================================*/create table 供应商信息 ( 供应商ID char(6) primary key, 供应商名称 nvarchar(20)
)go/*==============================================================*//* Table: 客户信息 *//*==============================================================*/create table 客户信息 ( 客户ID char(6) primary key, 客户名称 nvarchar(20) null)go/*==============================================================*//* Table: 部门信息 *//*==============================================================*/create table 部门信息 ( 部门ID char(6) primary key, 部门名称 nvarchar(20)
)go/*==============================================================*//* Table: 部门员⼯信息 *//*==============================================================*/create table 部门员⼯信息 ( ID int identity(1,1) primary key, 员⼯ID char(6)
constraint fk_部门员⼯信息_员⼯ID foreign key references 员⼯信息(员⼯ID), 部门ID char(6)
constraint fk_部门员⼯信息_部门ID foreign key references 部门信息(部门ID))go/*==============================================================*//* Table: 商品信息 *//*==============================================================*/create table 商品信息 ( 商品ID char(13) primary key, /*EAN-13条码:13位*/
制造商ID char(6)
constraint fk_商品信息_供应商ID foreign key references 供应商信息(供应商ID), 商品名称 nvarchar(20) , 计量单位 nchar(6)
)go/*==============================================================*//* Table: 仓库信息 *//*==============================================================*/create table 仓库信息 ( 仓库ID char(6) primary key, 仓库名称 nvarchar(20) , 仓库地址 text
)go/*==============================================================*//* Table: 库存信息 *//*==============================================================*/create table 库存信息 ( 商品ID char(13) primary key,/*商品ID中包含了商品信息、⽣产⼚家、⽣产时间以及有效期信息,同意名称的商品将有可能采⽤不同的商品ID*/ 仓库ID char(6)
constraint fk_库存信息_仓库ID foreign key references 仓库信息(仓库ID), ⼊库均价 decimal(12,2) null,/* 库存信息中的⼊库均价,需要对多次⼊库时商品的价格进⾏平均,并且需要考虑计量单位和计量因⼦*/
当前数量 decimal(12,2) ,/* 库存信息中的当前数量针对的计量单位只能按《商品信息》表中的计量单位执⾏ (计量因⼦=1)*/
constraint fk_库存信息_商品ID foreign key(商品ID) references 商品信息(商品ID))go/*==============================================================*//* Table: 采购信息 *//*==============================================================*/create table 采购信息 ( 采购单ID char(12) primary key, 采购⽇期 datetime , 采购部门ID char(6)
constraint fk_采购信息_采购部门ID foreign key references 部门信息(部门ID), 采购员ID char(6)
constraint fk_采购信息_采购员ID foreign key references 员⼯信息(员⼯ID), 供应商ID char(6) null
constraint fk_采购信息_供应商ID foreign key references 供应商信息(供应商ID),)go/*==============================================================*//* Table: 采购明细 *//*==============================================================*/create table 采购明细 ( 采购明细ID UNIQUEIDENTIFIER default(newid()) primary key, 采购单ID char(12)
constraint fk_采购明细_采购单ID foreign key references 采购信息(采购单ID), 商品ID char(13)
constraint fk_采购明细_商品ID foreign key references 商品信息(商品ID), 计量单位 nchar(6) , /* 采购时的计量单位可以根据实际情况输⼊ */
计量因⼦ decimal(12,2) , /* 计量因⼦是采购时的计量单位与《商品信息》表中该商品计量单位的⽐值 */
采购数量 decimal(12,2) , /* 按采购计量单位计算数量 */ 采购单价 decimal(12,2) /* 按采购计量单位计算数量 */
)/*==============================================================*//* Table: ⼊库信息 *//*==============================================================*/create table ⼊库信息 ( ⼊库单ID char(12) primary key, ⼊库⽇期 datetime , 库管员ID char(6) constraint fk_⼊库信息_库管员ID foreign key references 员⼯信息(员⼯ID), ⼊库部门ID char(6) , /*内部⼊库,如⽣产部等(产品,半成品) */
部门代表ID char(6)
constraint fk_⼊库信息_部门代表ID foreign key references 员⼯信息(员⼯ID), 采购单ID char(12) null /*采购⼊库,如采购部等 */ constraint fk_⼊库信息_采购单ID foreign key references 采购信息(采购单ID),
备注 text null /* 说明⼊库事由 */)go/*==============================================================*//* Table: ⼊库明细 *//*==============================================================*/create table ⼊库明细 ( ⼊库明细ID UNIQUEIDENTIFIER default(newid()) primary key, ⼊库单ID char(12)
constraint fk_⼊库明细_⼊库单ID foreign key references ⼊库信息(⼊库单ID), 商品ID char(13)
constraint fk_⼊库明细_商品ID foreign key references 商品信息(商品ID), ⼊库数量 decimal(12,2) , ⼊库单价 decimal(12,2) null)go/*==============================================================*//* Table: 销售信息 *//*==============================================================*/create table 销售信息 ( 销售单ID char(12) primary key, 销售⽇期 datetime , 销售部门ID char(6)
constraint fk_销售信息_部门ID foreign key references 部门信息(部门ID), 客户ID char(6)
constraint fk_销售信息_客户ID foreign key references 客户信息(客户ID)
)go/*==============================================================*//* Table: 销售明细 *//*==============================================================*/create table 销售明细 ( 销售明细ID UNIQUEIDENTIFIER default(newid()) primary key, 销售单ID char(12) constraint fk_销售明细_销售单ID foreign key references 销售信息(销售单ID), 商品ID char(13)
constraint fk_销售明细_商品ID foreign key references 商品信息(商品ID), 销售数量 decimal(12,2) ,
销售单价 decimal(12,2)
)/*==============================================================*//* Table: 出库信息 *//*==============================================================*/create table 出库信息 ( 出库单ID char(12) primary key,
仓库ID char(6), 出库⽇期 datetime , 出库部门ID char(6) null/*内部领⽤或调拨出库,如⽣产部等(半成品) */ constraint fk_出库信息_部门ID foreign key references 部门信息(部门ID), 销售单ID char(12) null/*销售出库,如销售部等 */ constraint fk_出库信息_销售单ID foreign key references 销售信息(销售单ID), 备注 text null/* 说明出库事由 */)go/*==============================================================*//* Table: 出库明细 *//*==============================================================*/create table 出库明细 ( 出库明细ID UNIQUEIDENTIFIER default(newid()) primary key, 出库单ID char(12)
constraint fk_出库明细_出库单ID foreign key references 出库信息(出库单ID), 商品ID char(13)
constraint fk_出库明细_商品ID foreign key references 商品信息(商品ID), 出库数量 decimal(12,2) ,
出库单价 decimal(12,2) null
)go/*==============================================================*//* Type: 采购明细临时表 *//*==============================================================*/create type 采购明细临时表 as Table
(
商品ID char(13) , 计量单位 nchar(6) , /* 采购时的计量单位可以根据实际情况输⼊ */
计量因⼦ decimal(12,2) , /* 计量因⼦是采购时的计量单位与《商品信息》表中该商品计量单位的⽐值 */
采购数量 decimal(12,2) , /* 按采购计量单位计算数量 */ 采购单价 decimal(12,2) /* 按采购计量单位计算数量 */)
/*==============================================================*//* Type: ⼊库明细临时表 *//*==============================================================*/create type ⼊库明细临时表 as Table
(
商品ID char(13) , ⼊库数量 decimal(12,2) ,/* ⼊库时的计量单位《商品信息》表中该商品计量单位计算,计量因⼦=1 ⼊库单价*/ ⼊库单价 decimal(12,2) null/* ⼊库单价按《商品信息》中该商品计量单位对应的⼊库价格计算 */)
Go/*==============================================================*//* Type: 出库明细临时表 *//*==============================================================*/create type 出库明细临时表 as Table
(
商品ID char(13) ,
出库数量 decimal(12,2) , /* 出库数量的计量单位按《商品信息》表中的计量单位计算 */ 出库单价 decimal(12,2) null /* 出库单价按《商品信息》表中的计量单位,以及出库时该商品的库存均价计算 */)
Go/*==============================================================*//* Type: 销售明细临时表 *//*==============================================================*/create type 销售明细临时表 as Table
(
商品ID char(13) ,
销售数量 decimal(12,2) , /* 销售数量的计量单位按《商品信息》表中的计量单位计算 */
销售单价 decimal(12,2) null /* 销售单价按《商品信息》表中的计量单位的销售单价计算 */)
Go
use SuperMarket;goinsert into 岗位信息 values('W0','经理');insert into 岗位信息 values('W1','⽣产员');insert into 岗位信息 values('W2','销售员');insert into 岗位信息 values('W3','采购员');insert into 岗位信息 values('W4','库管员');goinsert into 员⼯信息 values('Y00','张经理')insert into 员⼯信息 values('Y01','⽣产员1');insert into 员⼯信息 values('Y02','⽣产员2');insert into 员⼯信息 values('Y03','销售员1');insert into 员⼯信息 values('Y04','销售员2');insert into 员⼯信息 values('Y05','采购员1');insert into 员⼯信息 values('Y06','采购员2');insert into 员⼯信息 values('Y07','库管员1');insert into 员⼯信息 values('Y08','库管员2');goinsert into 员⼯岗位信息 values('Y00','W0');insert into 员⼯岗位信息 values('Y01','W1');insert into 员⼯岗位信息 values('Y02','W1');insert into 员⼯岗位信息 values('Y03','W2');insert into 员⼯岗位信息 values('Y04','W2');insert into 员⼯岗位信息 values('Y05','W3');insert into 员⼯岗位信息 values('Y06','W3');insert into 员⼯岗位信息 values('Y07','W4');insert into 员⼯岗位信息 values('Y08','W4');goinsert into 客户信息 values('K01','匿名');insert into 客户信息 values('K02','张三');insert into 客户信息 values('K03','李四');goinsert into 供应商信息 values('G01','伊利');insert into 供应商信息 values('G02','蒙⽜');goinsert into 部门信息 values('D00','办公室');insert into 部门信息 values('D01','⽣产部');insert into 部门信息 values('D02','销售部');insert into 部门信息 values('D03','采购部');insert into 部门信息 values('D04','仓储部');goinsert into 仓库信息 values('CK01','成品仓库1','地址1');insert into 仓库信息 values('CK02','成品仓库2','地址2')goinsert into 部门员⼯信息 values('Y00','D00');insert into 部门员⼯信息 values('Y01','D01');insert into 部门员⼯信息 values('Y02','D01');insert into 部门员⼯信息 values('Y03','D02');insert into 部门员⼯信息 values('Y04','D02');insert into 部门员⼯信息 values('Y05','D03');insert into 部门员⼯信息 values('Y06','D03');insert into 部门员⼯信息 values('Y07','D04');insert into 部门员⼯信息 values('Y08','D04');goINSERT INTO 商品信息 VALUES('m0001','G01','250ML伊利⽜奶','盒');INSERT INTO 商品信息 VALUES('m0002','G01','1000ML伊利⽜奶','盒');INSERT INTO 商品信息 VALUES('m0003','G02','250ML蒙⽜⽜奶','盒');INSERT INTO 商品信息 VALUES('m0004','G02','1000ML蒙⽜⽜奶','盒');goView Code
发布评论