Làm thế nào để: Thực hiện với số lượng lớn thông tin Cập Nhật và phụ trang bằng cách sử dụng OpenXML với.Nhà cung cấp mạng tại Visual C#.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:315968
Đối với một Microsoft Visual C++.NET Phiên bản của bài viết này, xem 316245.
Bài viết này đề cập đến Microsoft sau.Không gian tên thư viện lớp của NET Framework:
  • System.Data
  • System.Data.SqlClient

TRONG TÁC VỤ NÀY

TÓM TẮT
Bài viết từng bước này mô tả cách số lượng lớn phụ trang và Cập Nhật với Microsoft khác nhau.Các nhà cung cấp mạng dữ liệu bằng cách sử dụng các OpenXML phương pháp. Mặc dù các mẫu trong bài viết này sử dụng các nhà cung cấp quản lý SqlClient, bạn cũng có thể sử dụng OLEDB hoặc nhà cung cấp quản lý ODBC.

back to the top

Yêu cầu

Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, cơ sở hạ tầng mạng và gói dịch vụ mà bạn cần:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, hoặc máy chủ Microsoft Windows NT 4.0
  • Microsoft Visual Studio.NET
  • Microsoft SQL Server 2000
back to the top

Tạo ra các dự án

  1. Trong SQL Server, tạo ra một bảng với đoạn mã sau:
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Employee]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[Employee]GOCREATE TABLE [dbo].[Employee] (	[EmployeeId] [int] NOT NULL ,	[FirstName] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,	[LastName] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GO					
  2. Trong SQL Server, tạo ra một thủ tục được lưu trữ với đoạn mã sau:
    CREATE PROC sp_UpdateXML @empdata nTextAS  DECLARE @hDoc int    exec sp_xml_preparedocument @hDoc OUTPUT,@empdata   --This code updates old data. UPDATE Employee  SET    Employee.FirstName = XMLEmployee.FirstName,   Employee.LastName = XMLEmployee.LastName FROM OPENXML(@hDoc, 'NewDataSet/Employee')          WITH (EmployeeId Integer, FirstName varchar(100),  LastName varchar(100))  XMLEmployeeWHERE    Employee.EmployeeId = XMLEmployee.EmployeeId--This code inserts new data.Insert Into Employee SELECT   EmployeeId, FirstName, LastName	FROM       OPENXML (@hdoc, '/NewDataSet/Employee',1)WITH (EmployeeId Integer, FirstName varchar(100),  LastName varchar(100))  XMLEmployeeWhere XMLEmployee.EmployeeId Not IN (Select EmployeeID from Employee)EXEC sp_xml_removedocument @hDocGO					
  3. Bắt đầu Visual Studio.NET, và sau đó tạo ra một dự án mới giao diện điều khiển ứng dụng trong Visual C#.NET.
  4. Sao chép và dán đoạn mã sau vào Class1 của ứng dụng giao diện điều khiển:
    using System;using System.Data.SqlClient;using System.Data;namespace ConsoleApplication1{    /// <summary>    /// Summary description for Class1    /// </summary>    class Class1    {        /// <summary>        /// Main entry point for the application        /// </summary>        [STAThread]        static void Main(string[] args)        {            try            {                BulkInsertUpdate();                    System.Console.WriteLine("Successfully inserted and updated data");                    System.Console.Read();            }            catch (System.Data.SqlClient.SqlException e)            {                System.Diagnostics.Debug.WriteLine (e.Message);                 System.Console.WriteLine(e.Message);            }        }        static void BulkInsertUpdate()        {            //Steps:            //1. Create the dataset.            //2. Update the dataset.            //3. Insert some data.            //4. Save the changed data as XML            //   and send XML to SQL Server through the stored procedure.			            //Declaration            System.Data.DataSet         objDS;            SqlConnection               objCon;            SqlCommand                  objCom1;            SqlDataAdapter              objAdpt1;            String                      sConn;            sConn = "user id=myUser;password=YourPassword;" +                     "Database=YourDatabase;Server=YourServer";            objDS = new DataSet();            objCon = new SqlConnection(sConn);            objCon.Open();            objCom1 = new SqlCommand();            objCom1.Connection = objCon;            objAdpt1 = new SqlDataAdapter();            //Step 1: Create the dataset.            CreateDataSetFromEmployee(objDS, objCom1,objAdpt1);			            //Step 2: Update the dataset.            System.Data.DataTable tbl = objDS.Tables["Employee"];            //DataRow aRow;            int i = 0;            foreach (DataRow aRow in tbl.Rows)            {                i++;                aRow["FirstName"] = aRow["FirstName"].ToString() + i;                aRow["LastName"] = aRow["LastName"].ToString() + i;            }			            //Step 3: Insert some data.            for( int ii = 1; ii <= 5; ii++)            {                DataRow	   newRow = tbl.NewRow();                int j = ii+100;                newRow["EmployeeId"] = j;                newRow["FirstName"] = "Fname" + j;                newRow["LastName"] = "LName" + j;                tbl.Rows.Add( newRow);            }			            //Step 4: Save the changed data as XML,             //and send the XML to SQL Server through the stored procedure.            //In SQL Server, you wrote a stored procedure that            //accepts this XML and updates the corresponding table.            SaveThroughXML(objDS, objCon);        }        static void SaveThroughXML(DataSet objDS, SqlConnection objCon)        {            //Change the column mapping first.            DataTable                    tbl = objDS.Tables["Employee"];            System.Text.StringBuilder    sb = new System.Text.StringBuilder( 1000);            System.IO.StringWriter       sw = new System.IO.StringWriter(sb);			            foreach( DataColumn col in tbl.Columns)            {                col.ColumnMapping = System.Data.MappingType.Attribute;            }            objDS.WriteXml(sw, System.Data.XmlWriteMode.WriteSchema);            SqlCommand objCom = new SqlCommand();            objCom.Connection = objCon;            objCom.CommandType = CommandType.StoredProcedure;            objCom.CommandText = "sp_UpdateXML";	            objCom.Parameters.Add( new SqlParameter( "@empdata",                    System.Data.SqlDbType.NText));            objCom.Parameters[0].Value = sb.ToString();;            objCom.ExecuteNonQuery();        }        static void CreateDataSetFromEmployee( DataSet objDS,         SqlCommand objCom1,SqlDataAdapter objAdpt1)        {            //Create related objects.            objCom1.CommandType = CommandType.Text;            objCom1.CommandText = "Select EmployeeId, FirstName,LastName from Employee";            //Fill the Orders table.            objAdpt1.SelectCommand = objCom1;            objAdpt1.TableMappings.Add("Table", "Employee");            objAdpt1.Fill(objDS);				        }    }}					
  5. Sửa đổi các chuỗi kết nối như là thích hợp cho môi trường của bạn.
  6. Bấm phím F5 để xây dựng và chạy các ứng dụng.
  7. Bấm phím ENTER để đóng cửa sổ giao diện điều khiển khi ứng dụng ngừng chạy.
LƯU Ý: Ví dụ này không bao gồm bất kỳ quản lý lỗi.

back to the top
THAM KHẢO
Để biết thêm chi tiết về việc sử dụng.NET quản lý các nhà, cung cấp Click vào số bài viết dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
313480 Thông báo: Lộ trình.NET dữ liệu các nhà cung cấp
back to the top

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 315968 - Xem lại Lần cuối: 08/27/2011 20:29:00 - Bản sửa đổi: 2.0

Microsoft ADO.NET 1.1, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition

  • kbhowtomaster kbsqlclient kbstoredproc kbsystemdata kbmt KB315968 KbMtvi
Phản hồi