none
C# Reading from one database and writing to another. RRS feed

  • Question

  • hi guys,

    Thsi is what I am trying to do. Read (select) from a table in one database, edit the some data and write(Insert) to a table in another database.

    I have used one Dataset that stores the data from the first table. Then I use parameters to read the data from that Dataset and write is to the other table.

    Can I use only one data adapter to accomplish this? ( by using the insertcommand property of the data adapter to do the insert)

    Code Block

    public DataSet ConnectStagingDB()
            {
                String ProdTableConnStr = null;
                String StagingTableConnStr = null;
                try
                {
                   
                    ProdTableConnStr = "Data Source=(local);Database=NVIP-ADT;Integrated Security=SSPI";
                    StagingTableConnStr = "Data Source=(local);Database=Northwind;Integrated Security=SSPI";
                   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return new DataSet();
               
                }
               
                string SelProd =
                " SELECT TranscriptionNo,OrderNo,Old_TranscriptionText FROM Staging_Amp ;" ;
               
               
                SqlDataAdapter da = null;
                //SqlDataAdapter InsStgDA = null;
                SqlConnection  ProdTableConn = new SqlConnection(ProdTableConnStr);
                try
                {
                    da = new SqlDataAdapter(SelProd, StagingTableConnStr);
                    mds = new DataSet();
                    da.Fill(mds,"Staging_Amp");

                    SqlCommand InsStagingCmd = new SqlCommand(
                        "INSERT INTO Staging_Amp"
                        +"(TranscriptionNo, OrderNo, Old_TranscriptionText)"
                        +"VALUES (@TranscriptionNo,@OrderNo,Old_TranscriptionText,New_TranscriptionText) ;");

                   
                   
                    InsStagingCmd.Connection = ProdTableConn;


                    InsStagingCmd.Parameters.Add(
                        "@TranscriptionNo",SqlDbType.Int,4,"TranscriptionNo");
                    InsStagingCmd.Parameters.Add(
                        "@OrderNo",SqlDbType.Int,4,"OrderNo");
                    InsStagingCmd.Parameters.Add(
                        "@Old_TranscriptionText",SqlDbType.Text,16,"Old_TranscriptionText");
                   
                    //Change to @New_TranscriptionText
                    InsStagingCmd.Parameters.Add(
                        "@Old_TranscriptionText",SqlDbType.Text,16,"New_TranscriptionText");

                    da.InsertCommand = InsStagingCmd;

                    //da = new SqlDataAdapter(InsStagingCmd);
                    //SqlCommandBuilder cb = new SqlCommandBuilder(da);
                   
                   System.Data.DataTable StagingTable = new DataTable("Staging_Amp");
                   
                
                    da.Update(StagingTable);

                    //da.Update(

                    return mds;
                                           
                }


    Tuesday, December 4, 2007 4:36 PM