zoukankan      html  css  js  c++  java
  • WPF字符串SQL命令的增删改与存储过程的增删改

    1.目的与要实现的功能和截图

    功能实现SQL命令的增删改;实现SQL的存储过程的增删改;

    目的:熟悉WPF与SQL连接的操作;

         掌握SQL命令的增删改的方式;

         掌握存储过程增删改的方式;

         比较两种方式的不同。

    效果截图:SQL命令增删改界面---

    存储过程增删改界面:

    2.步骤和思路

    先测试Sql命令的增删改(新建一个类Test.cs------MainWindow.xaml前台设置---------MainWindow.xaml.cs后台设置

    再测试存储过程的增删改(新建一个类proc.cs----------新建一个窗口TestProc.xaml,前台编辑--------TestProc.xaml.cs后台编辑)

    然后再主界面放置一个按钮,跳转到存储过程增删改的窗口。

    3.Sql命令增删改代码

     Test.cs文件:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;//
    using System.Data.SqlClient;
    using System.Windows;
    using System.Data;//
    
    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 (con.State == ConnectionState.Closed)
                    con.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            public void TestExecuteNonQuery_Delete(string id)
            {
                if (con == null) return;
                string sql = "delete from 员工信息 where 员工ID='" + id + "'";
                SqlCommand cmd = new SqlCommand(sql, con);
                if (con.State == ConnectionState.Closed)
                    con.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            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 (con.State == ConnectionState.Closed)
                    con.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
        }
    }
    View Code

    MainWindow.xaml:

    <Window x:Class="WpfDataGridAdoTest.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="406" Width="670">
        <Grid>
            <DataGrid AutoGenerateColumns="True" IsSynchronizedWithCurrentItem="True"  IsReadOnly="True"  Height="232" HorizontalAlignment="Left" Margin="38,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="333"  />
            
            <Button Content="增" Height="23" HorizontalAlignment="Left" Margin="54,311,0,0" Name="button1" VerticalAlignment="Top" Width="113" Click="button1_Click" />
            <Button Content="删" Height="23" HorizontalAlignment="Left" Margin="248,311,0,0" Name="button2" VerticalAlignment="Top" Width="113" Click="button2_Click" />
            <Button Content="改" Height="23" HorizontalAlignment="Left" Margin="438,311,0,0" Name="button3" VerticalAlignment="Top" Width="113" Click="button3_Click" />
            <TextBox Height="23" HorizontalAlignment="Left" Margin="473,25,0,0" Name="tbID" VerticalAlignment="Top" Width="132"
                  Text="{Binding ElementName=dataGrid1, Mode=TwoWay,Path=ItemsSource/员工ID}"   
                     />
            <TextBox Height="23" HorizontalAlignment="Left" Margin="473,107,0,0" Name="tbName" VerticalAlignment="Top" Width="132" 
                     Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/员工姓名}"/>
            <Label Content="员工ID" Height="28" HorizontalAlignment="Left" Margin="398,25,0,0" Name="labelID" VerticalAlignment="Top" Width="69" />
            <Label Content="员工姓名" Height="28" HorizontalAlignment="Left" Margin="398,107,0,0" Name="labelName" VerticalAlignment="Top" Width="69" />
            <Button Content="TestProc" Height="23" HorizontalAlignment="Left" Margin="486,208,0,0" Name="button4" VerticalAlignment="Top" Width="75" Click="button4_Click" />
        </Grid>
    </Window>
    View Code

    MainWindow.xaml.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Data.SqlClient;
    using System.Data;
    
    namespace WpfDataGridAdoTest
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            DBSimple db;
            public MainWindow()
            {
                InitializeComponent();
    
                db = new DBSimple();
    
                LoadDataGrid();
    
            }
    
            private void LoadDataGrid()
            {
                SqlConnection con;
                string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket";
                con= new SqlConnection(str);//连接数据库
    
                if (con.State == ConnectionState.Closed)
                    con.Open();//if判断是否关闭
    
    
                string sql = "select * from 员工信息;";
                SqlCommand cmd = new SqlCommand(sql, con);//sql命令
    
                SqlDataAdapter sda = new SqlDataAdapter(cmd);//用sql命令把sql数据取出来
    
                DataTable dt = new DataTable();//数据表对象
    
                sda.Fill(dt);//填充数据
    
    
                dataGrid1.ItemsSource = dt.DefaultView;//绑定到前台的DataGrid
              
                
                   
            
            
            }
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
    
                string id = tbID.Text;
                string name = tbName.Text;
    
                db.TestExecuteNonQuery_Insert(id, name);
    
                MessageBox.Show("插入数据成功!");//真实的把数据插入进数据库了。。用的是连接字符串的方式。如果是添加数据库文件到工程,没有办法真正把数据插入到数据库。
    
                LoadDataGrid();
            }
    
            private void button3_Click(object sender, RoutedEventArgs e)
            {
                string id = tbID.Text;
                string name = tbName.Text;
    
                db.TestExecuteNonQuery_Update(id, name);
    
                MessageBox.Show("更新数据成功!");
                LoadDataGrid();
            }
    
            private void button2_Click(object sender, RoutedEventArgs e)
            {
                string id = tbID.Text;
                db.TestExecuteNonQuery_Delete(id);
    
                MessageBox.Show("删除数据成功!");
                LoadDataGrid();
            }
    
            private void button4_Click(object sender, RoutedEventArgs e)
            {
    
                TestProc tp = new TestProc();
                tp.Show();
            }
    
       
    
    
    
    
        }
    }
    View Code

    4.存储过程增删改代码

    Proc.cs文件:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;
    using System.Data;
    
    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);
                cmd.Parameters.Add(new SqlParameter("@部门ID", SqlDbType.Char, 6)).Value = 部门ID; //输入参数
                cmd.Parameters.Add(new SqlParameter("@部门名称", SqlDbType.NChar, 20)).Value = 部门名称; //输入参数
                cmd.CommandType = CommandType.StoredProcedure;
    
                if (conn.State == ConnectionState.Closed)
                    conn.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex) { }
            }
    
            public void 删除部门信息(string 部门ID)
            {
                DataSet ds = new DataSet();
                if (conn == null) return;
                SqlCommand cmd = new SqlCommand("删除部门信息", conn);
                cmd.Parameters.Add(new SqlParameter("@部门ID", SqlDbType.Char, 6)).Value = 部门ID; //输入参数
                cmd.CommandType = CommandType.StoredProcedure;
    
                if (conn.State == ConnectionState.Closed)
                    conn.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex) { }
            }
    
    
            public void 更新部门信息(string 部门ID, string 部门名称)
            {
                DataSet ds = new DataSet();
                if (conn == null) return;
    
    
                SqlCommand cmd = new SqlCommand("更新部门信息", conn);
                cmd.Parameters.Add(new SqlParameter("@部门ID", SqlDbType.Char, 6)).Value = 部门ID; //输入参数
                cmd.Parameters.Add(new SqlParameter("@部门名称", SqlDbType.NChar, 20)).Value = 部门名称; //输入参数
                cmd.CommandType = CommandType.StoredProcedure;
    
    
                if (conn.State == ConnectionState.Closed)
                    conn.Open();
                try
                {
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex) { }
            }
        }
    }
    View Code

    TestProc.xaml:

    <Window x:Class="WpfDataGridAdoTest.TestProc"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="TestProc" Height="402" Width="745">
        <Grid>
            <DataGrid  AutoGenerateColumns="True" IsSynchronizedWithCurrentItem="True" IsReadOnly="True" Height="251" HorizontalAlignment="Left" Margin="12,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="431" />
            <TextBox Height="29" HorizontalAlignment="Left" Margin="516,22,0,0" Name="textBoxID" VerticalAlignment="Top" Width="180"
                       Text="{Binding ElementName=dataGrid1, Mode=TwoWay,Path=ItemsSource/部门ID}"/>
            <TextBox Height="29" HorizontalAlignment="Left" Margin="516,88,0,0" Name="textBoxName" VerticalAlignment="Top" Width="180" 
                      Text="{Binding ElementName=dataGrid1, Mode=OneWay,Path=ItemsSource/部门名称}"/>
            <Button Content="增" Height="23" HorizontalAlignment="Left" Margin="76,292,0,0" Name="button1" VerticalAlignment="Top" Width="163" Click="button1_Click_1" />
            <Button Content="改" Height="23" HorizontalAlignment="Left" Margin="516,292,0,0" Name="button2" VerticalAlignment="Top" Width="163" Click="button2_Click_1" />
            <Button Content="删" Height="23" HorizontalAlignment="Left" Margin="294,292,0,0" Name="button3" VerticalAlignment="Top" Width="163" Click="button3_Click_1" />
            <Label Content="部门ID" Height="28" HorizontalAlignment="Left" Margin="449,22,0,0" Name="label1" VerticalAlignment="Top" Width="49" />
            <Label Content="部门名称" Height="28" HorizontalAlignment="Left" Margin="449,89,0,0" Name="label2" VerticalAlignment="Top" Width="61" />
        </Grid>
    </Window>
    View Code

    TestProc.xaml.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;
    using System.Data.SqlClient;
    using System.Data;
    
    namespace WpfDataGridAdoTest
    {
        /// <summary>
        /// TestProc.xaml 的交互逻辑
        /// </summary>
        public partial class TestProc : Window
        {
            Proc pc;
            public TestProc()
            {
                InitializeComponent();
                pc = new TestDataSet1();
    
                LoadDataGrid();
            }
    
    
            private void LoadDataGrid()
            {
                SqlConnection con;
                string str = @"Data Source=PC01;Integrated Security=SSPI;database=SuperMarket";
                con = new SqlConnection(str);//连接数据库
    
                if (con.State == ConnectionState.Closed)
                    con.Open();//if判断是否关闭
    
    
                string sql = "select * from 部门信息;";
                SqlCommand cmd = new SqlCommand(sql, con);//sql命令
    
                SqlDataAdapter sda = new SqlDataAdapter(cmd);//用sql命令把sql数据取出来
    
                DataTable dt = new DataTable();//数据表对象
    
                sda.Fill(dt);//填充数据
    
    
                dataGrid1.ItemsSource = dt.DefaultView;//绑定到前台的DataGrid
    
    
            }
    
    
            private void button1_Click_1(object sender, RoutedEventArgs e)
            {
                string id = textBoxID.Text;
                string name = textBoxName.Text;
    
                pc.增加部门信息(id, name);
    
                MessageBox.Show("插入数据成功!");
    
                LoadDataGrid();
            }
    
            private void button3_Click_1(object sender, RoutedEventArgs e)
            {
                string id = textBoxID.Text;
    
                pc.删除部门信息(id);
    
                MessageBox.Show("删除数据成功!");
    
                LoadDataGrid();
            }
    
            private void button2_Click_1(object sender, RoutedEventArgs e)
            {
                string id = textBoxID.Text;
                string name = textBoxName.Text;
    
                pc.更新部门信息(id, name);
    
                MessageBox.Show("更新数据成功!");
    
                LoadDataGrid();
            }
    
         
        }
    }
    View Code

    5.各个部分粗略的作用解释

    Test.cs文件:

    定义了一个公开的类DBsimple,类里面分两部分。第一配置连接到数据库的字符串,第二是增删改功能实现的代码。

    MainWindow.xaml:

    很简单,需要注意的是DataGrid的这几个属性AutoGenerateColumns="True" IsSynchronizedWithCurrentItem="True"  IsReadOnly="True"。。其中AutoGenerateColumns是允许自动生成列,只有设置这个值为真,我们后台才能实现数据实时绑定。IsSynchronizedWithCurrentItem是让数据和TextBox双向动态显示。    IsReadOnly让它为只读状态。。。。。

    然后就是TEXTBOX的绑定。

    MainWindow.xaml.cs:

    定义一个私有的无参数方法(查询员工信息),然后打开软件即默认加载这个无参数方法。

    然后就是几个按钮的功能实现。

    Proc.cs文件:

    这个是定义的接口来实现。

    在接口实现方法里,首先配置连接数据库的字符串,然后是存储过程的增删改的带参数的公开方法。

    TestProc.xaml:

    这也没什么好讲的,同MainWindow.xaml。

    TestProc.xaml.cs:

    几乎是照搬MainWindow.xaml.cs。没什么特别。

    5.存储过程代码

    use SuperMarket;
    go
    create proc 增加部门信息
    @部门ID char(6),
    @部门名称 nvarchar(20)
    as
    begin
        DECLARE  @errorSum int;
        set @errorSum=0;
        begin transaction 
            insert into 部门信息 values(@部门ID,@部门名称);
        if @errorSum<>0
          rollback transaction;
        else
          commit transaction;
    end
    go
    
    ------插入
    
    use SuperMarket;
    go
    create proc 删除部门信息
    @部门ID char(6)
    as
    begin
        DECLARE  @errorSum int;
        set @errorSum=0;
        begin transaction 
            delete from 部门信息 where 部门ID=@部门ID;
        if @errorSum<>0
        rollback transaction;
      else
        commit transaction;
    end
    go
    ----删除
    
    
    create proc 更新部门信息
    @部门ID char(6),
    @部门名称 nvarchar(20)
    as
    begin
        DECLARE  @errorSum int;
        set @errorSum=0;
        begin transaction 
            update 部门信息  set 部门名称=@部门名称 where 部门ID=@部门ID;
        if @errorSum<>0
        rollback transaction;
      else
        commit transaction;
    end
    go
    ----更新
    View Code

    6.完整的数据库基础代码

    use master;
    go
    create database SuperMarket
    go
    
    use 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;
    go
    insert into 岗位信息 values('W0','经理');
    insert into 岗位信息 values('W1','生产员');
    insert into 岗位信息 values('W2','销售员');
    insert into 岗位信息 values('W3','采购员');
    insert into 岗位信息 values('W4','库管员');
    go
    insert 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');
    go
    insert 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');
    go
    insert into 客户信息 values('K01','匿名');
    insert into 客户信息 values('K02','张三');
    insert into 客户信息 values('K03','李四');
    go
    insert into 供应商信息 values('G01','伊利');
    insert into 供应商信息 values('G02','蒙牛');
    go
    insert into 部门信息 values('D00','办公室');
    insert into 部门信息 values('D01','生产部');
    insert into 部门信息 values('D02','销售部');
    insert into 部门信息 values('D03','采购部');
    insert into 部门信息 values('D04','仓储部');
    go
    insert into 仓库信息 values('CK01','成品仓库1','地址1');
    insert into 仓库信息 values('CK02','成品仓库2','地址2')
    go
    insert 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');
    go
    INSERT INTO 商品信息 VALUES('m0001','G01','250ML伊利牛奶','');
    INSERT INTO 商品信息 VALUES('m0002','G01','1000ML伊利牛奶','');
    INSERT INTO 商品信息 VALUES('m0003','G02','250ML蒙牛牛奶','');
    INSERT INTO 商品信息 VALUES('m0004','G02','1000ML蒙牛牛奶','');
    go
    View Code
  • 相关阅读:
    马肯9450命令回传
    上海公积金社保业务办理
    工厂调试命令总结
    数据库自动备份
    powerDesigner16.5导出word
    winform 打印预览
    winform 页面设计(一)
    梅特勒-托利多 TCS-35 电子台秤
    winform 练习多线程
    ASP.NET Core 3.1使用Swagger API接口文档
  • 原文地址:https://www.cnblogs.com/Energy240/p/3624369.html
Copyright © 2011-2022 走看看