lecture5 6

63
ВИЗУАЛЬ ПРОГРАМЧЛАЛ II Тогтохын Гантөр

Upload: gantur-togtokh

Post on 19-Jun-2015

285 views

Category:

Documents


0 download

TRANSCRIPT

  • 1. II

2. ADO.NET ADO.NET 5, 6 3. : DataSet, DataAdapter ADO.NET 4. ADO.NET (Disconnected Model) , , . , , . : 5. ADO.NET , , , , , : 6. ADO.NET DataSet DataTable , DataTable (DataRow), (DataColumn), . (Constraint), (DataRelation), (DataView) . : 7. ADO.NET DataAdapter - DataSet , .DataTable DataTable DataTableDataAdapter InsertCommnadUpdateCommand DeleteCommand SelectCommand DataSet SqlDataAdapter, OracleDataAdapter,OdbcAdapter, OleDbDataAdapter Database 8. DataAdapter DataAdapter (DataSet, DataTable ) . DataAdapter Fill() DataSet DataTable . DataAdapter Update() DataSet DataTable . DataAdapter DataSet CommandBuilder . : 9. DataAdapter DataSet DataSetFill()DataAdapter Update(): 10. DataAdapter DataAdapter SQL String connString = Data Source = (local);Integrated security= true; Initial Catalog= Northwind; ; String selectSql= SELECT* FROM Orders; SqlDataAdapter da = new SqlDataAdapter(selectSql, connString);: 11. DataAdapter DataAdapter Command String connString= Data Source=(local); Integrated security= true; Initial Catalog=Northwind;; SqlCommand conn = new SqlConnection(connString); String selectSql= MyStoredProcedure; SqlCommand selectCmd= new SqlCommand (selectSql, conn); selectCmd.CommandType=CommandType.StoredProcedure; SqlDataAdapter da = new SqlDataAdapter(selectCmd);: 12. DataSet DataSet , .DataSet .DataSet . DataAdapter . Connection . : 13. DataAdapter DataSet DataSet DataTableCollectionDataRow DataColumnDataTabelDataRelationCollectionDataRelationDataRowCollection DataCollemn CollectionConstraintConstraintCollectionDataViewDefaultView: 14. DataSet DataSet . DataSet (Typed Dataset)DataSet , XML (.xsd) . Visual Studio . DataSet (Untyped DataSet)DataSet .: 15. DataSet DataSet DataSet . DataSet ds = new DataSet(MyDataSet); DataSet ds = new DataSet();: 16. DataTable DataSet DataTableCollection DataTable DataSet Tables . DataSet DataTableCollection Add() . AddRange() . : 17. DataTable , DataSet DataSet ds = new DataSet(MyDataSet); DataTable dt= new DataTable(MyTable); ds. Table.Add(dt);ds.Table.Add(MyTable1);DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); ds.Tables.AddRange(new DataTable[] {dt1, dt2});: 18. DataTable DataSet . DataTable dt= ds.Tables[MyTable]; DataTable dt= ds.Tables[0];: 19. DataTable DataSet DataSet Int32 tableCount = ds.Table.Count;Boolean tableExists = ds.Tables.Contains(MyTable);DataSet Int32 tablelndex = ds.Tables.IndexOf(MyTable); DataTable dt= ds.Tables.Add(MyTable) Int32 tablelndex = ds.Tables.IndexOf(dt); 20. DataTable DataSet DataTable dt= ds.Tables.Add(MyTable); ds.Remove(dt);ds.Remove(MyTable);ds.RemoveAt[0];ds.Tables.Clear(); 21. DataColumn DataTable DataColumnCollection DataColumn DataTable Columns . DataTable DataColumnCollection Add() . AddRange() . 22. DataColumn , DataTable dt= new DataTable(MyTable); DataColumn col= new DataColumn (MyColumn, typeof (System.Int32)); dt.Columns.Add( col); dt.Columns.Add(MyColumn,typeof((System.Int32)); DataColumn[] dca = new DataColumn[] {new DataColumn(Col1, typeof(System.Int32)), new DataColumn(Col2, typeof(System.Int32))}; dt.Columns.AddRange(dca); 23. DataColumn , DataTable dt = new DataTable(MyTable); DataColumn col2 = new DataColumn(); col2.ColumnName = Column-2; col2.DataType = typeof(string); col2.MaxLength = 50; dt.Columns.Add(col2); 24. DataColumn , DataTable dt = new DataTable(MyTable); DataColumn col = new DataColumn (Id, typeof(System.Int32)); col.AllowDBNull = false; // col.DefaultValue = -1; // col.Caption = ID #; // col.ReadOnly= true; // dt.Columns.Add(col); // 25. DataColumn DataTable dt = new DataTable(MyTable); DataColumn col = new DataColumn (Id, typeof(System.Int32)); col.Autolncrement = true; // col.AutolncrementSeed = 1; // col.AutolncrementStep = 2; // dt.Columns.Add(col); 26. DataColumn DataTable dt = new DataTable(MyTable); DataColumn[] dc = new DataColumn[] {new DataColumn(Quantity,typeof(System.Int32)), new DataColumn(Price, typeof(System.Decimal))}; dt.Columns.AddRange(dc); DataColumn col3 = new DataColumn(ExtendedPrice, typeof(System.Decimal)); Col3. Expression = Quantity * Price; dt.Columns.Add(col3); 27. DataRow DataRow DataTable . DataTable , , , DataRow . . . DataRow . 28. DataRow , DataTable dt= new DataTable(); dt.Columns.Add(MyColumn,typeof(System.String)); DataRow row = dt.NewRow(); row[MyColumn] = Item 1; dt.Rows.Add(row); 29. DataRow 1 - : DataRow row; // row[0] = New Value; // row[MyColumn]= New Value ; 30. DataRow 2- : BeginEdit() - CancelEdit() - . EndEdit() - . 31. DataRow DataTable dt = new DataTable(); // DataTable DataRow row = dt.Rows[o]; row.BeginEdit(); foreach(DataColumn col in dt.Columns){ // } bool rowValid = true; if(rowValid) row.CancelEdit(); else row.EndEdit (); 32. DataRow DataRow- ADO.NET RowState (Added, Modified, Deleted) . AccepChanges(), RejectChanges() . AcceptChanges() . AccentChanges() EndEdint() , RejectChanges() CancelEdit() . 33. DataRow DataRow- DataRow RowState . RowState . ADO.NET DataRow RowState . RowState AccentChanges(), RejectChanges() . Unchanged . 34. DataRow DataTable dt = new DataTable(); dt.Columns.Add(MyColumn, typeof(System.String )); DataRow row = dt.NewRow(); // RowState = Detached dt.Rows.Add(row); // RowState = Added dt.AcceptChanges(); //RowState = Unchanged row[MyColumns] = MyFieldValue; // RowState = Modified row.RejectChanges(); // RowState = Unchanged row.Deleted (); // RowState = Deleted row.AcceoptChanges (); 35. DataRow DataTable DataRow Deleted() . RowState Added AcceptChanges() . DataAdapter Update() . 36. DataSet- . , . DataColumn . . 37. ADO.NET- uniqueConstraint ( ) ForeignKeyConstraint . ( ) DataTable ConstraintCollection DataTable Constraints . 38. UniqueConstraint UniqueConstraint uc = new UniquiConstraint (ID, dt.Columns[CustomerID]); dt.Constraints.Add(uc); DataColumn[] cols= new DataColumn[] {dt.Columns[LastName], dt.Columns[FirstName]}; UniqueConstraint uc = new UniqueConstraint(FullName,cols); dt.Constraints.Add(us); 39. UniqueConstraint UniqueConstraint uc = new UniqueConstraint(ID, dt.Columns[CustomerID], true); dt.Constraints.Add(uc);DataTable ConstraintCollection dt.Constraints.Add(ID, dt.Columns[CustomerID], false); 40. ForeignKeyConstraint ForeignKeyConstraint . ForeignKeyConstraint fc = new ForeignKeyConstraint(CategoryID, ds.Tables[Categories].Columns[CategoryID], ds.Tables[Products].Columns[CategoryID]); ds.Table[Products].Constraints.Add(fc); dt.Constraints.Add(CategoryID, ds.Tables[Categories].Columns[CategoryID], ds.Tables[Products].Columns[CategoryID]); 41. ForeignKeyConstraint ForeignkeyConstraint . DelereRule . Cascade . UpadateRule . Cascade 42. String connString = Data Source=(local); Integrated security=true; Initial Catalog=Northwind;; String selectSQL = SELECT*FROM Orders ; SqlDataAdapter da = new SqlDataAdapter(selectSQL, connString); DataSet DataSet ds = new DataSet(); da.Fill(ds.Orders); DataTable DataTable dt=new DataTable(Orders); da.Fill(dt); 43. DataAdapter Update() DataSet , , DeleteeCommand, InsertCommand, UpdateCommand . CommandBuilder , , . DeleteCommand, InsertCommand, UpdateCommand . . 44. CommandBuilder CommandBuilder DeleteCommand, InsertCommand, UpdateCommand DataAdapter SelectCommand .SelectCommand DeleteCommand, UpdateCommand . 45. CommandBuilder CommandBuilder The SelectCommand must also contain all the required columns without default values in the DataRow for the generated Insert Command to work. SelectCommand . SelectCommand RefreshSchema() . GetDeleteCommand(), GetInsertCommand(), GetUpdateCommand() . 46. CommandBuilder CommandBuider String connString=Data Source=(local); Integrated security=true; Initial Catalog=Northwind;; SqlDataAdapter da = new SqlDataAdapter(SELECT * FROM Employee ORDER by EmployeeID, connString ); SqlCommandBuilder builder=new SqlCommandBuilder(adapter); DataSet ds=newDataSet(EmployeeSet ); da.Fill(ds, Employees); 47. CommandBuilder CommandBiulder DataTable EmployeeTable = ds.Table[Employees]; DataRow row= EmployeeTable.NewRow(); row[FirstName]=Rodney; row[LastName]= DangerField; Row[Title]=Comedian; EmployeeTable.Rows.Add(row); da.Update(ds, Employee); MessageBox.Show(row[FirstName].ToString().Trin g()+ +row[LastName].ToString().Trim()); 48. CommandBuilder . , (CommandBuilder DELETE, UPDATE . . ) 49. CommandBuilder DeleteCommand, InsertCommand, UpdateCommand , DataSet DataAdapter 50. Parameter SourceColumn, SourceVersion DataColumn DataAdapter DataRow . . DataRow- . params.Add(@OrderID, SqlDbType.Int, 0, OrderID); params[@OrderID].SourceVersion = DataRowVersion.Original; params[@OrderID].SourceVersion = DataRowVersion.Current; 51. CREATE PROCEDURE DeleteEmployees @EmpID int AS SET NOCOUNT ON DELETE FROM Employees WHERE EMPID = @EMPID RETURNGO 52. CREATE PROCEDURE GetEmployees AS SET NOCOUNT ON SELECT EmpID, FirsName, LastName FROM Employees return GO 53. CREATE PROCEDURE InsertEmployees @EmpID int output, @FirstName nvarchar(30), @LastName nvarchar(30) AS SET NOCOUNT ON INSERT Employees (FirstName, LastName ) VALUES(@FirstName, @LastName) if @ @rowcount=0 return 1 SET @EmpID = Scope_Identity() SELECT @Empld Empld Return GO 54. CREATE PROCEDURE UpdateEmployees @EmpID int output, @FirstName nvarchar (30), @LastName nvarchar (30) AS SET NOCOUNT ON UPDATE Employees SET FirstName= @FirstName, LastName= @LastName WHERE EmpID=@EmpID if @ @rowcount=0 return 1 return GO 55. String connString = Data Source=(local); Integrated security=SSPI; Initial Catalog= Northwind; ; SqlConnection conn= new SqlConnection(connString ); SqlCommand selectCommand = new SqlCommand(GetEmployees, conn); SelectCommand.CommandType=CommnadType.StoredProcedure; SqlCommand deleteCommand=new SqlCommand(DeleteEmployees, conn); deleteCommand.CommandType=CommandType.StoredProcedure; SqlCommand insertCommand= new SqlCommand(InsertEmployees, conn); insertCommand.CommandType=CommandType.StoredProcedure; SqlCommand updateCommand=new SqlCommand(UpdateEmployees, conn); updateCommand.CommandType=CommandType.StoredProcedure; 56. SqlParameterCollection cparams; Cparams=deleteCommand.Parameters; Cparams.Add(@EmpID, SqlDbType.Int, 0, EmpID); Cparams[@EmpID].SourceVersion=DataRowVersion.Ori ginal; Cparams=insertCommand.Parameters; Cparams.Add(@EmpID, SqlDbType.Int, 0, EmpID); Cparams[@EmpID].Direction=ParameterDirection.Outpu t; Cparams[@EmpID].SourceVersion=DataRowVersion.Ori ginal; Cparams.Add(@FirstName, SqlDbType.NVarChar, 30, LastName); 57. Ccparams=updateCommand.Parameters; Cparams.Add(@EmpID, SqlDbType.Int, 0, EmpID); Cparams[@EmpID].SourceVersion=DataRowVersion.Ori ginal; Cparams.Add(@FirstName, SqlDbType.NVarChar, 30, FirstName); Cparams.Add(@FirstName, SqlDbType.NVarChar, 30, FirstName); SqlDataAdapter da= new SqlDataAdapter(selectCommand.CommandText,conn); da.DeleteCommand=deleteCommand; da.InsertCommand=insertCommand; da.UpdateCommand=updateCommand; 58. DataSet ds= new DataSet(); da.Fill(ds. Employees); //... DataSet da.InsertCommand.Parameters[1].Value= ; da.InsertCommand.Parameters[2].Value=; da.InsertCommand.Connection.Open(); da.InsertCommand.ExecuteNonQuery(); MessageBox.Show(da.InsertCommand.Parameters [0].Value.ToString()); da.Update(ds.Employees); 59. DataSet ds= new DataSet (); da.Fill(ds. Employees); //... DataSet DataRow row= ds.Table[0].NewRow(); Row[1] = www; Row[2] = www; ds.Tables[0],Rows.Add(row); da.Update(ds. Employees); 60. DataSet ds = new DataSet(SalesOrders); DartaTable dtHeader = new DataTable(SalesOrderHeader); DataColumnCollection cols= dtHeader.Columns; DataColumn col = cols.Add(SalesOrderID, typeof(System.Int32)); col.AutoIncrement= true; Col.AutolncrementSeet=-1; Col.AutolncrementStep=-1; Cols.Add(OrderDate, typeof(System.DateTime)).AllowDBNull = false; Cols.Add(SalesOrderNumber, typeof(System.String)).MaxLength=25; Cols.Add(TotalDue, typeof(System.Decimal)); 61. dtHeader.PrimaryKey=new DataColumn[]{cols[SalesOrderID]}; ds.Table.Add(dtHeader); DataTable dtDetail = new DataTable(SalesOrderDetail); Cols=dtDetail.Columns; Cols.Add(SalectOrderID, typeof(System.Int32)).AllowDBNull = false; Col=cols.Add(SalesOrderDetailID, typeof(System.Int32)); Col.AutoIncrement = true; Col.AutoncrementSeet = -1; Col.AutoncrementStep = -1; Cols.Add(UnitPrice, typeof(System.Decimal)).AllowDBNull = false; 62. Cols.add(OrderQty, typeof(System.Int16)).AllowDBNull = false; Cols.Add(LineTotal, typeof(System.Decimal)); dtDetail.PrimaryKey = new DataColumn[] {cols[OrderID], cols[ProductID]}; ds.Tables.Add(dtDetail); ds.Relations.Add(SalecOrderHeader_SalesOrderD etail, dtHeader.Columns[SalesOrderID], dtDetail.Columns[SalesOrderID]); 63. String sqlConnectString= Data Source=(local); Integrated security=true; Initial Catalog=AdventureWorks;; String sqlSelect = @ SELECT SalesOrderID, OrderDate, SalesOrderNumber, TotalDue FROM Sales.SalesOrderHeader SELECT SalesOrderID, SalesOrderDetailID, UnitPrice, OrderQty, LineTotal FROM Sale.SalesOrderDetail;; SqlDataAdapter da = new SqlDataAdapter(sqlSelect, sqlConnectString); da.TableMapping.Add (Table, SalesOrderHeader ); da.TableMapping.Add (Table1, SalesOrderHeader ); da.Fill(ds);