Esempio n. 1
0
        public static void ImportToSQL(string tableName)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                DataSet ds      = new DataSet();
                string  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + ofd.FileName + ";" +
                                  "Extended Properties=Excel 8.0;";
                OleDbConnection conn = new OleDbConnection(strConn);
                conn.Open();
                string           strExcel  = "";
                OleDbDataAdapter myCommand = null;
                strExcel  = string.Format("select * from [{0}$]", "Sheet1"); //Bicycle为excel中工作薄
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                myCommand.Fill(ds, "Sheet1");
                DataTable dt = ds.Tables["Sheet1"];


                DbEntry.Context.UsingConnection(delegate()
                {
                    IDbBulkCopy c          = DbEntry.Context.GetDbBulkCopy();
                    c.BatchSize            = 10;
                    c.DestinationTableName = tableName;
                    c.NotifyAfter          = 10;
                    //c.SqlRowsCopied += new SqlRowsCopiedEventHandler(
                    //    delegate(object sender, SqlRowsCopiedEventArgs e)
                    //    {
                    //        Console.WriteLine("{0} rows copied.", e.RowsCopied);
                    //    });
                    c.WriteToServer(dt);
                });
            }
        }
Esempio n. 2
0
        public void TestGetTheRightCopier()
        {
            IDbBulkCopy c = DbEntry.Provider.GetDbBulkCopy(false);

            Assert.IsNotNull(c);
            Assert.IsTrue(c is CommonBulkCopy);
        }
Esempio n. 3
0
        public void TestCommonBulkCopy()
        {
            var sql = new SqlStatement("SELECT [Id],[Name] FROM [Books] ORDER BY [Id]");
            var rcs = new List <long>();

            DbEntry.Provider.ExecuteDataReader(sql, delegate(IDataReader dr)
            {
                DbEntry.NewConnection(delegate
                {
                    IDbBulkCopy c          = _sqlite.GetDbBulkCopy(false);
                    c.BatchSize            = 2;
                    c.DestinationTableName = "test";
                    c.NotifyAfter          = 3;
                    c.SqlRowsCopied       += ((sender, e) => rcs.Add(e.RowsCopied));
                    c.WriteToServer(dr);
                });
            });
            Assert.AreEqual(1, rcs.Count);
            Assert.AreEqual(3, rcs[0]);

            Assert.AreEqual(5, StaticRecorder.Messages.Count);

            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=1:Int64,@Name_1=Diablo:String)", StaticRecorder.Messages[0]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=2:Int64,@Name_1=Beijing:String)", StaticRecorder.Messages[1]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=3:Int64,@Name_1=Shanghai:String)", StaticRecorder.Messages[2]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=4:Int64,@Name_1=Pal95:String)", StaticRecorder.Messages[3]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=5:Int64,@Name_1=Wow:String)", StaticRecorder.Messages[4]);
        }
Esempio n. 4
0
        public void TestCommonBulkCopyAbort()
        {
            var sql = new SqlStatement("SELECT [Id],[Name] FROM [Books] ORDER BY [Id]");

            DbEntry.Provider.ExecuteDataReader(sql, delegate(IDataReader dr)
            {
                DbEntry.NewConnection(delegate
                {
                    IDbBulkCopy c          = _sqlite.GetDbBulkCopy(false);
                    c.BatchSize            = 2;
                    c.DestinationTableName = "test";
                    c.NotifyAfter          = 3;
                    c.SqlRowsCopied       += delegate(object sender, SqlRowsCopiedEventArgs e)
                    {
                        e.Abort = true;
                    };
                    c.WriteToServer(dr);
                });
            });
            Assert.AreEqual(3, StaticRecorder.Messages.Count);

            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=1:Int64,@Name_1=Diablo:String)", StaticRecorder.Messages[0]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=2:Int64,@Name_1=Beijing:String)", StaticRecorder.Messages[1]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name]) VALUES (@Id_0,@Name_1);\n<Text><30>(@Id_0=3:Int64,@Name_1=Shanghai:String)", StaticRecorder.Messages[2]);
        }
Esempio n. 5
0
        public void TestGetTheRightCopier2()
        {
            var dc = new DataProvider("SqlServerMock");

            DbEntry.NewTransaction(delegate
            {
                IDbBulkCopy c = dc.GetDbBulkCopy(false); // exception
                Assert.IsNotNull(c);
                Assert.IsTrue(c is SqlServerBulkCopy);
            });
        }
Esempio n. 6
0
        public void TestGetTheRightCopier3()
        {
            DbContext dc = new DbContext("SqlServer");

            dc.NewTransaction(delegate()
            {
                IDbBulkCopy c = dc.GetDbBulkCopy();
                Assert.IsNotNull(c);
                Assert.IsTrue(c is SqlServerBulkCopy);
            });
        }
Esempio n. 7
0
 protected void BulkCopy(string sql, bool identityInsert)
 {
     Src.ExecuteDataReader(new SqlStatement(sql), dr =>
     {
         DbEntry.NewConnection(delegate
         {
             IDbBulkCopy c          = Dest.GetDbBulkCopy(identityInsert);
             c.BatchSize            = _batchSize;
             c.DestinationTableName = DestinationTableName;
             c.NotifyAfter          = _notifyAfter;
             c.SqlRowsCopied       += (sender, e) => Console.WriteLine("{0}: {1}", DestinationTableName, e.RowsCopied);
             c.WriteToServer(dr);
         });
     });
     Console.WriteLine("{0} ({1}) copied!", DestinationTableName, _times++);
 }
Esempio n. 8
0
        public void TestBulkCopyWithNullValue()
        {
            var sql = new SqlStatement("SELECT [Id],[Name],[MyInt],[MyBool] FROM [NullTest] ORDER BY [Id]");

            DbEntry.Provider.ExecuteDataReader(sql, delegate(IDataReader dr)
            {
                DbEntry.NewConnection(delegate
                {
                    IDbBulkCopy c          = _sqlite.GetDbBulkCopy(false);
                    c.BatchSize            = 2;
                    c.DestinationTableName = "test";
                    c.NotifyAfter          = 3;
                    c.WriteToServer(dr);
                });
            });
            Assert.AreEqual(4, StaticRecorder.Messages.Count);

            // TODO: why null value is single type ?
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name],[MyInt],[MyBool]) VALUES (@Id_0,@Name_1,@MyInt_2,@MyBool_3);\n<Text><30>(@Id_0=1:Int64,@Name_1=tom:String,@MyInt_2=<NULL>:Single,@MyBool_3=True:Boolean)", StaticRecorder.Messages[0]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name],[MyInt],[MyBool]) VALUES (@Id_0,@Name_1,@MyInt_2,@MyBool_3);\n<Text><30>(@Id_0=2:Int64,@Name_1=<NULL>:Single,@MyInt_2=1:Int32,@MyBool_3=False:Boolean)", StaticRecorder.Messages[1]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name],[MyInt],[MyBool]) VALUES (@Id_0,@Name_1,@MyInt_2,@MyBool_3);\n<Text><30>(@Id_0=3:Int64,@Name_1=<NULL>:Single,@MyInt_2=<NULL>:Single,@MyBool_3=<NULL>:Single)", StaticRecorder.Messages[2]);
            Assert.AreEqual("INSERT INTO [test] ([Id],[Name],[MyInt],[MyBool]) VALUES (@Id_0,@Name_1,@MyInt_2,@MyBool_3);\n<Text><30>(@Id_0=4:Int64,@Name_1=tom:String,@MyInt_2=1:Int32,@MyBool_3=True:Boolean)", StaticRecorder.Messages[3]);
        }
Esempio n. 9
0
        public void TestSqlServeerBulkCopy()
        {
            DbContext    dc  = new DbContext("SqlServer");
            SqlStatement sql = new SqlStatement("select [Id],[Name] from [Books] order by [Id]");
            List <long>  rcs = new List <long>();

            DbEntry.Context.ExecuteDataReader(sql, delegate(IDataReader dr)
            {
                dc.NewConnection(delegate()
                {
                    IDbBulkCopy c          = dc.GetDbBulkCopy();
                    c.BatchSize            = 2;
                    c.DestinationTableName = "test";
                    c.NotifyAfter          = 3;
                    c.SqlRowsCopied       += new SqlRowsCopiedEventHandler(delegate(object sender, SqlRowsCopiedEventArgs e)
                    {
                        rcs.Add(e.RowsCopied);
                    });
                    c.WriteToServer(dr);
                });
            });
            Assert.AreEqual(1, rcs.Count);
            Assert.AreEqual(3, rcs[0]);
        }