USE [master]
GO
/****** Object: Database [storedb] Script Date: 07/29/2010 10:51:09 ******/
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'xstoredb')
DROP DATABASE [xstoredb]
GO
USE [master]
GO
/****** Object: Database [storedb] Script Date: 07/29/2010 10:51:09 ******/
CREATE DATABASE [xstoredb];
GO
USE [xstoredb]
GO
CREATE TYPE T_smallstring FROM varchar(50)
CREATE TYPE T_medstring FROM varchar(200)
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Categories]') AND type in (N'U'))
DROP TABLE [dbo].[Categories]
GO
CREATE TABLE [dbo].[Categories](
[CategoryID] [int] IDENTITY(1,1) NOT NULL,
[CategoryName] [T_smallstring] NOT NULL,
CONSTRAINT [PK_Categories] PRIMARY KEY CLUSTERED
([CategoryID] ASC)
)
GO
CREATE TABLE [dbo].[Products](
[ProductID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NOT NULL,
[ModelNumber] [T_smallstring] NOT NULL UNIQUE,
[ModelName] [T_smallstring] NOT NULL UNIQUE,
[UnitCost] [money] NULL,
[Description] [T_medstring] NULL,
CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED
([ProductID] ASC),
);
ALTER TABLE dbo.Products
ADD CONSTRAINT [FK_Products_Categories]
FOREIGN KEY(CategoryID)
REFERENCES dbo.Categories(CategoryID);
GO
CREATE PROCEDURE [dbo].[GetProducts]
AS
BEGIN
SELECT C.CategoryName, P.ProductId, P.ModelNumber, P.ModelName, P.UnitCost, P.Description
From dbo.Products AS P
JOIN dbo.Categories AS C
ON P.CategoryID = C.CategoryID
END
GO
CREATE PROCEDURE [dbo].[UpdateProduct]
(
@ProductId int,
@CategoryName nvarchar(50),
@ModelNumber nvarchar(50),
@ModelName nvarchar(50),
@UnitCost money,
@Description nvarchar(50)
)
AS
BEGIN TRY
BEGIN TRANSACTION
IF NOT EXISTS (SELECT 1 FROM Categories WHERE CategoryName=@CategoryName)
BEGIN
INSERT INTO dbo.Categories (CategoryName) VALUES (@CategoryName)
END
UPDATE dbo.Products
SET ModelNumber=@ModelNumber,
ModelName=@ModelName, UnitCost=@UnitCost, Description=@Description,
CategoryID=(SELECT CategoryID FROM dbo.Categories WHERE CategoryName=@CategoryName)
WHERE ProductId=@ProductId
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
END CATCH
GO
CREATE PROCEDURE [dbo].[DeleteProduct]
(
@ProductId int
)
AS
BEGIN TRY
BEGIN TRANSACTION
DECLARE @CatId int
SET @CatId = (SELECT CategoryID FROM Products WHERE @ProductId=ProductId);
IF @CatId IS NOT NULL
BEGIN
DELETE FROM dbo.Products WHERE ProductId = @ProductId;
IF (SELECT COUNT(*) FROM dbo.Products WHERE CategoryID = @CatId) = 0
DELETE FROM dbo.Categories WHERE CategoryID = @CatId;
END
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
GO
--DROP PROC AddProduct
--GO
CREATE PROCEDURE [dbo].[AddProduct]
(
@CategoryName nvarchar(50),
@ModelNumber nvarchar(50),
@ModelName nvarchar(50),
@UnitCost money,
@Description nvarchar(200),
@ProductId int OUTPUT
)
AS
BEGIN TRY
BEGIN TRANSACTION
IF NOT EXISTS (SELECT 1 FROM Categories WHERE CategoryName=@CategoryName)
BEGIN
INSERT INTO dbo.Categories (CategoryName) VALUES (@CategoryName);
END
DECLARE @CatID int
SET @CatID = (SELECT CategoryID FROM dbo.Categories WHERE CategoryName=@CategoryName);
INSERT dbo.Products (CategoryID, ModelNumber, ModelName, UnitCost, Description)
VALUES (@CatID, @ModelNumber, @ModelName, @UnitCost, @Description );
COMMIT TRANSACTION
SET @ProductId = SCOPE_IDENTITY();
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
-- Raise an error with the details of the exception
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
GO
没有合适的资源?快使用搜索试试~ 我知道了~
ProductMvvm
共40个文件
cs:17个
xaml:5个
config:3个
5星 · 超过95%的资源 需积分: 0 1 下载量 104 浏览量
2011-06-21
16:45:00
上传
评论
收藏 81KB ZIP 举报
温馨提示
WPF MVVM开发示例 public class Product { public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(PropertyChangedEventArgs e) { if (PropertyChanged != null) PropertyChanged(this, e); } //For DB use only! private int _productId; public int _ProductId { get { return _productId; } } private string modelNumber; public string ModelNumber { get { return modelNumber; } set { modelNumber = value; OnPropertyChanged(new PropertyChangedEventArgs("ModelNumber")); } }
资源推荐
资源详情
资源评论
收起资源包目录
ProductMvvm.zip (40个子文件)
ProductMvvm
ProductMvvm.sln 923B
ProductMvvm
App.xaml 550B
ProductMvvm.csproj 7KB
Foundation
Messenger.cs 14KB
CommandBehavior.cs 6KB
RelayCommand.cs 4KB
app.config 1KB
LightBrushedx.jpg 28KB
ClassDiagram2.cd 1B
bin
Release
ProductMvvm.vshost.exe.config 1KB
ProductMvvm.exe.config 1KB
ProductMvvm.vshost.exe.manifest 490B
ProductMvvm.exe 71KB
ProductMvvm.vshost.exe 14KB
Window1.xaml.cs 719B
Views
ProductSelectionView.xaml 903B
ProductSelectionView.xaml.cs 673B
ProductDisplay.xaml.cs 655B
ProductDisplay.xaml 4KB
App.xaml.cs 666B
ClassDiagram1.cd 1014B
Resource1.resx 4KB
Linq.dbml 3KB
GelButtonResourceDictionary.xaml 4KB
Model
StoreDB.cs 10KB
Linq.dbml.layout 2KB
ProductMvvm.csproj.user 168B
Resource1.Designer.cs 3KB
Window1.xaml 1KB
ViewModels
ProductDisplayModelStatus.cs 5KB
ProductSelectionModel.cs 3KB
ProductDisplayModel.cs 5KB
Product.cs 5KB
Linq.designer.cs 13KB
Properties
AssemblyInfo.cs 2KB
Settings.Designer.cs 2KB
Resources.resx 6KB
Settings.settings 1KB
Resources.Designer.cs 3KB
CreateStoredb.sql 4KB
共 40 条
- 1
资源评论
- 码易2013-04-27适合初学者
sunmove001
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功