Excel SqlServerデータベースのインポート(二)


上記第1の導入方法は、中間変数DataTableによるものである.
本文は第2の方法である.直接sql文の制御を通じてExeclをSqlに書き込む
インタフェースはFileUploadとButtonで、ボタンでExcelファイルのパスを取得します.ここでは紹介しません.詳細は、ExcelインポートSqlServerデータベース(一)を参照してください.論理レイヤは、ファイルパスの下でデータ処理レイヤに渡されます.
D層の具体的なやり方を見てみましょう.
 
    /// <summary>
    ///   sql   Excel  Sql
    /// </summary>
    /// <param name="strPath">Excel      </param>
    /// <returns>bool</returns>
    public bool BatchInsertData(string strPath)
    {
        bool blnResult = false;
        //               ,    newTable  ,  Excel    .
        //  string strsql = "select * into newTable from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source=" + "\"" + path + "\"" + ";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]";
        //       Table        ,      .
        string strsql = "insert into Table select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=" + strPath + "',Sheet1$)";

        //     
        string strConn = "server=192.168.*.*;database=Student;uid=sa;pwd=123";
        SqlConnection objConn = new SqlConnection(strConn);
        //    
        objConn.Open();
        //  
        SqlCommand sqlcom = new SqlCommand(strsql, objConn);
        if (sqlcom.ExecuteNonQuery() > 0)
        {
            blnResult = true;
        }
        return blnResult;
    }

この方法のコードは比較的簡単である.ポイントはSql文への応用です.
次に、比較的一般的なインポートでエクスポートされるsql文をいくつかまとめます.
                
一、SQL SERVERとaccessのデータインポートエクスポート
 
         1.SQL SERVERでaccessデータを問い合わせる:
            SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=')...テーブル名
 
            2.SQLサーバへのアクセスのインポート
             SELECT * INTO newtable FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...テーブル名
 
            3.SQL SERVERテーブルのデータをAccessテーブルに挿入
               insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\DB.mdb";User ID=Admin ;Password=')...テーブル名(カラム名1,カラム名2)selectカラム名1,カラム名2 from sqlテーブル
Insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:db.mdb';'admin';',Test)select id,name from Test INSERT INTO OPENROWSET('Microsoft.Jet.OLB.ED 4.0','c:trade.mdb';'admin';',表名)SELECT*FROM sqltablename
 
二、SQL SERVERとEXCELのデータのインポートとエクスポート
 
1、SQL SERVERでExcelデータを検索する:
            SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 
           
2、ExcelのデータをSQL serverにインポートする:
            SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
           
3、SQL SERVERで調べたデータを一つのExcelファイルに導く
            EXEC master..xp_cmdshell'bcpライブラリ名.dbo.表名out c:Temp.xls-c-q-S「servername」-U「sa」-P"'--パラメータ説明:SはSQLサーバ名;Uはユーザである.Pはパスワード
例:EXECマスター..xp_cmdshell 'bcp saletesttmp.dbo.Table out c:\temp1.xls -c -q -S"pmserver"-U"sa"-P"sa"'
           
4、SQL SERVERでExcelにデータを挿入する:
           insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)