ado.net c#.net2005 From第一讲(BindingDemoForm11)

SQL:

CREATE   TABLE   [ 產品資料 ]  (
    
[ 產品編號 ]   [ int ]   IDENTITY  ( 1 1 NOT   NULL  ,
    
[ 產品 ]   [ nvarchar ]  ( 40 ) COLLATE Chinese_Taiwan_Stroke_CI_AS  NOT   NULL  ,
    
[ 供應商編號 ]   [ int ]   NULL   CONSTRAINT   [ DF__產品資料__供應商編號__5D60DB10 ]   DEFAULT  ( 0 ),
    
[ 類別編號 ]   [ int ]   NULL  ,
    
[ 單位數量 ]   [ nvarchar ]  ( 20 ) COLLATE Chinese_Taiwan_Stroke_CI_AS  NULL  ,
    
[ 單價 ]   [ money ]   NULL   CONSTRAINT   [ DF__產品資料__單價__5E54FF49 ]   DEFAULT  ( 0 ),
    
[ 庫存量 ]   [ smallint ]   NULL   CONSTRAINT   [ DF__產品資料__庫存量__5F492382 ]   DEFAULT  ( 0 ),
    
[ 已訂購量 ]   [ smallint ]   NULL   CONSTRAINT   [ DF__產品資料__已訂購量__603D47BB ]   DEFAULT  ( 0 ),
    
[ 安全存量 ]   [ smallint ]   NULL   CONSTRAINT   [ DF__產品資料__安全存量__61316BF4 ]   DEFAULT  ( 0 ),
    
[ 不再銷售 ]   [ bit ]   NOT   NULL   CONSTRAINT   [ DF__產品資料__不再銷售__6225902D ]   DEFAULT  ( 0 ),
    
CONSTRAINT   [ Pk_產品資料 ]   PRIMARY   KEY    CLUSTERED  
    (
        
[ 產品編號 ]
    )  
ON   [ PRIMARY ]  ,
    
CONSTRAINT   [ 產品資料_FK00 ]   FOREIGN   KEY  
    (
        
[ 類別編號 ]
    ) 
REFERENCES   [ 產品類別 ]  (
        
[ 類別編號 ]
    ) 
ON   DELETE   CASCADE    ON   UPDATE   CASCADE  ,
    
CONSTRAINT   [ 產品資料_FK01 ]   FOREIGN   KEY  
    (
        
[ 供應商編號 ]
    ) 
REFERENCES   [ 供應商 ]  (
        
[ 供應商編號 ]
    ) 
ON   DELETE   CASCADE    ON   UPDATE   CASCADE  ,
    
CONSTRAINT   [ CK 產品資料 已訂購量 ]   CHECK  ( [ 已訂購量 ]   >=   0 ),
    
CONSTRAINT   [ CK 產品資料 安全存量 ]   CHECK  ( [ 安全存量 ]   >=   0 ),
    
CONSTRAINT   [ CK 產品資料 庫存量 ]   CHECK  ( [ 庫存量 ]   >=   0 ),
    
CONSTRAINT   [ CK 產品資料 單價 ]   CHECK  ( [ 單價 ]   >=   0 )
ON   [ PRIMARY ]
GO


CREATE   TABLE   [ 產品類別 ]  (
    
[ 類別編號 ]   [ int ]   IDENTITY  ( 1 1 NOT   NULL  ,
    
[ 類別名稱 ]   [ nvarchar ]  ( 15 ) COLLATE Chinese_Taiwan_Stroke_CI_AS  NOT   NULL  ,
    
[ 說明 ]   [ ntext ]  COLLATE Chinese_Taiwan_Stroke_CI_AS  NULL  ,
    
[ 圖片 ]   [ image ]   NULL  ,
    
[ upsize_ts ]   [ timestamp ]   NULL  ,
    
CONSTRAINT   [ PK_產品類別 ]   PRIMARY   KEY    CLUSTERED  
    (
        
[ 類別編號 ]
    )  
ON   [ PRIMARY ]  
ON   [ PRIMARY ]  TEXTIMAGE_ON  [ PRIMARY ]
GO


 运行界面:

CS代码:

 

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.Data.SqlClient;

namespace  ch1
{
    
public partial class BindingDemoForm11 : Form
    
{
        
// 資料集物件的類別層級建立
        DataSet ds = new DataSet();

        
// 關聯性連結物件的類別層級宣告
        DataRelation rel;
        
public BindingDemoForm11()
        
{
            InitializeComponent();
        }


        
private void BindingDemoForm11_Load(object sender, System.EventArgs e)
        
{
            
// 設定表單的最小大小
            this.MinimumSize = new Size(648414);

            
// 建立一個連接字串
            string strConnection = "Server=(local);Database=ch1;uid=sa;pwd=";

            
// 建立一個查詢命令字串
            string strSql = "SELECT 類別編號, 類別名稱, 說明 FROM 產品類別";

            
// 建立一個資料連接
            SqlConnection myConnection = new SqlConnection(strConnection);

            
// 建立一個資料配接器以便針對資料來源執行 SELECT 陳述式來提取出要填入資料集的資料記錄
            SqlDataAdapter myAD = new SqlDataAdapter(strSql, myConnection);


            
// 將資料填入資料集
            myAD.Fill(ds, "產品類別");

            
// 重新指定用來提取資料來源之資料記錄的 SELECT 陳述式
            myAD.SelectCommand.CommandText = "SELECT 產品編號, 產品, 供應商編號, 類別編號, 單位數量, 單價, 庫存量, 已訂購量, 安全存量, 不再銷售 FROM 產品資料";

            
// 將資料填入資料集內名稱為「產品資料」的資料表
            myAD.Fill(ds, "產品資料");

            
// 宣告用來將資料集內之「產品類別」資料表連結至「產品資料」資料表的父欄位與子欄位
            DataColumn parentcol;
            DataColumn childcol;
            parentcol 
= ds.Tables["產品類別"].Columns["類別編號"];
            childcol 
= ds.Tables["產品資料"].Columns["類別編號"];

            
// 建立用來連結「產品類別」資料表與「產品資料」資料表的 DataRelation 物件,其名稱為「每一種類別的產品」。
            rel = new DataRelation("每一種類別的產品", parentcol, childcol);
            ds.Relations.Add(rel);

            
// 設定 ComboBox 控制項的資料來源
            ComboBoxCategory.DataSource = ds;
            
// 設定 ComboBox 控制項的顯示欄位
            ComboBoxCategory.DisplayMember = "產品類別.類別名稱";

            
// 將 DataGrid 控制項繫結至 DataRelation 物件(亦即「每一種類別的產品」)
            DataGridProduct.SetDataBinding(ds, "產品類別.每一種類別的產品");

            myConnection.Close();

        }

    }

}

窗体:

 

namespace  ch1
{
    
partial class BindingDemoForm11
    
{
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.IContainer components = null;

        
/// <summary>
        
/// 清理所有正在使用的资源。
        
/// </summary>
        
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>

        protected override void Dispose(bool disposing)
        
{
            
if (disposing && (components != null))
            
{
                components.Dispose();
            }

            
base.Dispose(disposing);
        }


        
Windows 窗体设计器生成的代码

        
internal System.Windows.Forms.Label Label1;
        
internal System.Windows.Forms.ComboBox ComboBoxCategory;
        
internal System.Windows.Forms.DataGrid DataGridProduct;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值