ターン:Asp.NetインポートExcelデータをSQL Serverデータベースに

Asp.Netは、インターネット上のSQL Serverデータベースに例のインポートExcelデータを見つけ、共有し、ストアドプロシージャを呼び出すことです。

私はちょうど私は大丈夫感じる、使用します。基本的な考え方は、提出されたファイルの内容を取得するために使用され、次のステップは、バックグラウンドでプログラムされて、新しいページを作成するHTMLコントロールファイルは、コントロールを提出入れて、サーバーコントロールに、このコントロール、ボタン(サーバーコントロール)を追加することですExcelを提供するためのスペースは、sqlclint SQL Server 2000は、次のイベントに置くことができ、次のボタンを使用して接続するために使用され、最初のsystem.data.sqlclint OLEDBをSystem.Data.OleDbの駆動を使用し、使用して、2つのネームスペースを紹介ライン上で、また、あなた自身の店ああを書くプロセスにコードを後押し!

導入:cmd.CommandText = "Proc_Address";この文は、プロシージャ・コール"Proc_Address"が格納される
ストアドプロシージャのコード:
PROC Proc_Address @CardNoチャーを作成する(20である)、チャーToAddress @(50)、@ CCAddressチャー(50)、チャー@YYYYMM(12)と
AS
DECLAREの@strSqlチャー(400)

SET @strSql = + + @YYYYMM 'のEmailAddressに挿入'」値( '' + + CARDNO ''、 '' ToAddress + + ''、 '' + @ CCAddress + ''、 '' + '1')「 - レコードを挿入する
のexec(@strSqlを) - INSERT INTOステートメントも使用することができます
GO



のButton1 Click(オブジェクト送信者、System.EventArgs E)無効プライベート
{
のCreateTableを();

// EXCELは、まず、データベースにインポート:最初EXCEL dateView、IIを導入しますそして、内側dateViewでデータベースにデータをインポート

// EXCEL接続文字列の
文字列sConnectionString =「プロバイダ= Microsoft.Jet.OLEDB.4.0; 」+
"データソース=" + File1.PostedFile.FileName.ToString()+ ";" +
"プロパティ=エクセル8.0の拡張;";

//建立EXCEL的连接
OleDbConnectionオブジェクトobjConn =新しいOleDbConnectionオブジェクト(sConnectionString)。

objConn.Open();

OleDbCommandをobjCmdSelect =新しいのOleDbCommand( "SELECT * [Sheet1の$] FROM"、objConn)。
OleDbDataAdapterおよobjAdapter1 =新しいOleDbDataAdapterおよ();
objAdapter1.SelectCommand = objCmdSelect。

DataSetのobjDataset1 =新しいデータセット();

objAdapter1.Fill(objDataset1、 "XLData";

// DataGrid1.DataSource = objDataset1.Tables [0] .DefaultView; //测试代码、用来测试是否能读出EXCEL上面的数据
// DataGrid1.DataBind();

データテーブルDT = objDataset1.Tables [0];
データビューMYVIEW =新しいデータビュー(DT)。


コネティカットのSqlConnection、
文字列System.Configuration.ConfigurationSettings.AppSettings DNS = [ "コンストラクタ"]; //接続文字列
CONN SqlConnectionの新しい新=(DNS);

SqlCommandオブジェクトCMD = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
CMD。 = CommandTextを"Proc_Addressに";

int型のCOUNT = 0; //は、のためにエラーの数を記録する

試み
{
foreachの(DataRowView MYVIEWのようにmydrv)
{
; COUNT ++
// SQL Serverへの最後の接続に近い
conn.State.ToString(場合()=「クローズド」!
はconn.close();

私たちはCMDのすべてのパラメータに空//毎回
cmd.Parameters.Clearを();

//ストアドプロシージャの実行
3の合計のパラメータを取得//を
// @ CARDNO 、@、@ CCAddress ToAddress
SqlParameter paraCardNo = cmd.Parameters.Add( "@のCARDNO"、SqlDbType.Char)。
SqlParameter paraToAddress = cmd.Parameters.Add( "@のToAddress"、SqlDbType.Char)。
SqlParameter paraCCAddress = cmd.Parameters.Add( "@のCCAddress"、SqlDbType.Char)。
SqlParameter paraYYYYMM = cmd.Parameters.Add( "@のYYYYMM"、SqlDbType.Char)。

//表示是输出参数
paraCardNo.Direction = ParameterDirection.Input。
paraToAddress.Direction = ParameterDirection.Input。
paraCCAddress.Direction = ParameterDirection.Input。
paraYYYYMM.Direction = ParameterDirection.Input。

//参数赋值
paraCardNo.Value = myDrv [0] .ToString()(TRIM)。
paraToAddress.Value = myDrv [1] .ToString()(TRIM)。
paraCCAddress.Value = myDrv [2] .ToString()(TRIM)。
= ddlYear.Items paraYYYYMM.Value [ddlYear.SelectedIndex] + ddlMonth.Items .Valueの[ddlMonth.SelectedIndex] .Valueの;

conn.Open();
cmd.ExecuteNonQuery(); //書き込みSQLデータベース
}
}
キャッチ
{
ページ。 Response.Writeを( "警告( '最初の" + count.ToString()+ "番目のデータエラー!');";
objConn.Close(); // EXCELの接続閉じる
}

objConn.Closeを(); //閉じるEXCEL接続

転送:http://www.wybcom.cn

ます。https://www.cnblogs.com/zsli-2008-20/archive/2008/03/14/1105525.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33816946/article/details/93314739