演示代码下载: http://dev.mjxy.cn/a-entlib-Access-the-database-using-stored-procedures.aspx
使用存储过程访问数据库
1.配置文件
view sourceprint?
03 | <section name= "dataConfiguration"
type= "Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
requirePermission= "true"
/> |
05 | <dataConfiguration defaultDatabase= "QuickStarts Instance"
/> |
07 | <add name= "QuickStarts Instance"
connectionString= "Database=EntLibQuickStarts;Server=(local);Integrated Security=SSPI;" |
08 | providerName= "System.Data.SqlClient"
/> |
2.程序代码
view sourceprint?
02 | using
Microsoft.Practices.EnterpriseLibrary.Data; |
03 | using
Microsoft.Practices.EnterpriseLibrary.Common.Configuration; |
06 | private
Database _db = EnterpriseLibraryContainer.Current.GetInstance<Database>( "QuickStarts Instance" );
|
08 | private
void MainForm_Load( object
sender, System.EventArgs e) |
10 | this .cmbCategory.Items.Clear();
|
13 | using
(IDataReader rd = _db.ExecuteReader( "GetCategories" ))
|
17 | Category item =
new Category(
|
22 | this .cmbCategory.Items.Add(item);
|
26 | if
( this .cmbCategory.Items.Count > 0)
|
27 | this .cmbCategory.SelectedIndex = 0;
|
30 | private
void cmbCategory_SelectedIndexChanged( object
sender, System.EventArgs e) |
32 | this .dsProducts.Clear();
|
34 | Category selectedCategory = (Category)
this .cmbCategory.SelectedItem;
|
35 | if
(selectedCategory == null )
|
40 | _db.LoadDataSet( "GetProductsByCategory" ,
|
41 | this .dsProducts,
new string [] {
"products" },
|
42 | selectedCategory.CategoryId);
|
46 | private
void btnSave_Click( object
sender, System.EventArgs e) |
49 | System.Data.Common.DbCommand insertCommand =
null ;
|
50 | insertCommand = _db.GetStoredProcCommand( "HOLAddProduct" );
|
51 | _db.AddInParameter(insertCommand,
"ProductName" , DbType.String,
"ProductName" , DataRowVersion.Current);
|
52 | _db.AddInParameter(insertCommand,
"CategoryID" , DbType.Int32,
"CategoryID" , DataRowVersion.Current);
|
53 | _db.AddInParameter(insertCommand,
"UnitPrice" , DbType.Currency,
"UnitPrice" , DataRowVersion.Current);
|
55 | System.Data.Common.DbCommand deleteCommand =
null ;
|
56 | deleteCommand = _db.GetStoredProcCommand( "HOLDeleteProduct" );
|
57 | _db.AddInParameter(deleteCommand,
"ProductID" , DbType.Int32,
"ProductID" , DataRowVersion.Current);
|
58 | _db.AddInParameter(deleteCommand,
"LastUpdate" , DbType.DateTime,
"LastUpdate" , DataRowVersion.Original);
|
60 | System.Data.Common.DbCommand updateCommand =
null ; updateCommand = _db.GetStoredProcCommand( "HOLUpdateProduct" );
|
61 | _db.AddInParameter(updateCommand,
"ProductID" , DbType.Int32,
"ProductID" , DataRowVersion.Current);
|
62 | _db.AddInParameter(updateCommand,
"ProductName" , DbType.String,
"ProductName" , DataRowVersion.Current);
|
63 | _db.AddInParameter(updateCommand,
"CategoryID" , DbType.Int32,
"CategoryID" , DataRowVersion.Current);
|
64 | _db.AddInParameter(updateCommand,
"UnitPrice" , DbType.Currency,
"UnitPrice" , DataRowVersion.Current);
|
65 | _db.AddInParameter(updateCommand,
"LastUpdate" , DbType.DateTime,
"LastUpdate" , DataRowVersion.Current);
|
67 | int
rowsAffected = _db.UpdateDataSet( this .dsProducts,
"Products" ,
|
68 | insertCommand, updateCommand, deleteCommand, UpdateBehavior.Standard);
|