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
  • 相关阅读:
    布局重用 include merge ViewStub
    AS 常用插件 MD
    AS 2.0新功能 Instant Run
    AS .ignore插件 忽略文件
    AS Gradle构建工具与Android plugin插件【大全】
    如何开通www国际域名个人网站
    倒计时实现方案总结 Timer Handler
    AS 进行单元测试
    RxJava 设计理念 观察者模式 Observable lambdas MD
    retrofit okhttp RxJava bk Gson Lambda 综合示例【配置】
  • 原文地址:https://www.cnblogs.com/Energy240/p/3624369.html
Copyright © 2011-2022 走看看