EXECLテーブルからメインデータの内部に同時に導入し、テーブル(asp.netウェブフォーム)

  。1   
  2 
  。3 //受信
  4。
  5。<ASP:するFileUpload ID = "UPExecl"にrunat = "サーバー" /> 
  6 <ASP:ボタンID = "BtnExecl"にrunat = "サーバー"テキスト= "確認"クリック時= "BtnExecl_Click" / > 
  7 
  。8つの//インポートバルク売上インボイス
  。9保護ボイドBtnExecl_Click(SENDERオブジェクト、のEventArgs E)
 10 { 
 11 IF(== UPExecl.HasFile偽の)// HasFileするFileUploadファイル指定したかどうかを確認するために使用される
 12は{ 
 13応答です。書き込み( "<スクリプト>警告( ' Excelファイルを選択してください')</ SCRIPT>"); 
 14リターン; //ノー文書、リターン
 15} 
 16 =文字列IsXls System.IO.Path.GetExtension(UPExecl。 。ファイル名).ToString()TOLOWER( ); // System.IO.Path.GetExtensionファイル名の拡張子を取得する
 場合17(IsXls = ".XLS"を !&& IsXls!= ".xlsm" && IsXls!= "の.xlsx") !&& IsXls!= ".xlsm" && IsXls!= "の.xlsx") 
 18 {
 19のResponse.Write( "<スクリプト>警告 ( ' Excelファイルのみを選択することができます')</ SCRIPT>"); 
 20はリターンです; // Excelファイルを選択していない場合、返さ
 21を}である
 22は、文字列filename = UPExecl.FileNameです。 //ファイルのDateTime Execle日付関数の名前を取得します
 23文字列関数savepath = Server.MapPathの(( " 〜\\ファイル\\")+ファイル名); // Server.MapPathの相対パスは、仮想サーバーを取得した
 24 UPExecl.SaveAs(関数savepath); / /名前を付けて保存は、サーバー上に格納されたコンテンツのファイルアップロード
 ; 25のDataSetのds = ExcelSqlConnection(関数savepath、ファイル名)
 26 resultMsg文字列= ""; //結果情報
 27 //のSQLの実行セーブで
 28 sqllist ArrayListを=新しい新しいのArrayList(); 
 29 ///一時データテーブル
 データテーブルデータテーブル新しい新=()shrinfo 30; 
 ;図31は、INT I = 0であり、
 32文字列のSQL = ""; 
 33は、DataSet RS =(データセット)セッションである[ "e_xsfhd"]。販売@インボイス
 34のDataTable dtを= NULL;
 35 IF(DS == NULL || ds.Tables [0] == NULL || ds.Tables [0] == 0 .Rows.Count)
 36 { 
 37のResponse.Write(「<SCRIPT>アラート(「Excelのテーブル空で、データ「)</ SCRIPT>「) ; //! Excelのテーブルが空である場合、ユーザが促される
 38である} 
 39他の
 40 { 
 41は、トライしない
 42は、{である
 43であるshrinfo ds.Tables = [0] .Copy (); //テーブル構造コピー
 )44 shrinfo.Clearを(; //クリアデータ
 テーブル内の45リードサイクルEXECL //クラスのコンテンツ
 46は、foreachの(のDataRow ds.TablesにおけるDR [0] .Rows)で
 47 { 
 48 sqllist .Clear(); //エラーメッセージを消去する
 49列dhdw = DR [ "注文単位(必須)"]のToString();. 
 。50文字列ckmc = DR [ "出荷倉庫(必須)"]のToString() 、
 51であるysgsbh列DR = [ "(必要)運送会社は"]のToString();. 
 52は、文字列SHR DR = [ "荷受人(必須)"]のToString()です;
 53列dhhm = DR [ "電話番号(必須)"]のToString();
 54列szcs = DR [ "都市(必須)"]のToString(); 
 55文字sjrdz DR = [ "書き込みアドレス(必須)"]のToString();. 
 56 mjIDストリングDR =「購入者でありますID(必須) "]のToString();. 
 57 XSRストリングDRある= ["販売者"] .ToString(); 
 58列BZ DR = ["注意「] .ToString(); 
 59のDataRow [] = shrinfo DB2 .Select( "荷受人(必須)=「" + SHR + " 'と連絡先電話番号(必須)='" dhhm + + " '及び都市(必須)='" + szcs + " 'および受信者アドレス(必須)= ' "+ sjrdz +" 'および順序ユニット(オプション)= ' "+ dhdw +" '及び出荷倉庫(必須)= ' "+ ckmc +" '及び輸送会社( )= ' "+ ysgsbh +"必須 'と)」バイヤーID(オプション)= ' "+ mjID +"'; 
 60 //、現在の受信者情報母線か否かを判断する
 (DB2の場合61。== 0の長さ) 
 62 {れる
 63 //決定さEXECLのいくつかの単純なデータ列の内部行う
 64をIF(ckmc.Length == 0)
 65 { 
 66 = + resultMsg "レシーバ" + SHR +「出荷倉庫に対応その後、自由をインポートし、nの後確認してください- \\「;!
 67続行。 
 68}無料の買い手のIDに対応して、導入後にチェック!
 N - \\「; 92は続行; 
 93}QueryDT(SQL)。
111 IF(dt.Rows.Count == 0)
112 {
113 resultmsg + = "受信機" + SHR + "運送会社に対応する:" + ysgsbh + "システムには存在しません!"; 
114続行; 
115} 
116そう
117 { 
1 18 ysgsdm dt.Rows = [0] [ " 。ysgsdm "]のToString(); 
119} 
120顧客コードが存在するかどうかを確認する手段があるかどうかを確認する//ため
121 khdm文字列=" "; 
122 khdj文字列=" "; 
123 = SQL" khmc v_m_khdmからSELECT khdm、khdj = ' "+ dhdw.Trim()+"' "; 
124 IFACE.DBUtility.DbHelperSQL.QueryDT DT =(SQL); 
125 IF(dt.Rows.Count == 0)
126 { 
127 = + resultMsg"荷受"+ SHR +"順序付けユニットは、対応する"+ dhdw +"システムに存在しない";!
128続行; 
129} 
130そう
131は、{ 
132 khdm dt.Rows = [0] ["khdm "]のToString(); 
133 khdj = dt.Rows [0] ["。khdj "]のToString(); 
134}
// 135売上高がスリップ生成はいくつかの準備が必要です前に
136 System.Data.SqlClient.SqlConnectionコネティカット=新新System.Data.SqlClient.SqlConnection(アプリケーション[ "のConnectionString"] ToStringメソッド()); 
137 DrpModule djbh =文字列。 RUNID( "tb_s_xsfhtzdzb"、 "djbh"、 "XSIFAC"、コネチカット州); 
文字列= "IFAC" fhdw 138; 
139 ghdw文字列= "IFAC"; //供給部(IFACデフォルト)
文字列ddbh 140 = ""; / /注文番号
141列FPH = ""; //請求書番号
142 crklx文字列=」1 "; 
143 =文字列yffd" 1" ; 
144小数totalMoney = 0;の//総量
145小数orderTotalMoney = 0; 
146 =小数hkze 0; //価格
147 int型のSL = 0; //番号
148の//アイテムコードが取得
= "149 HPDM文字列"; // 
150 HJ =文字列"「; 
151件の//生成受注
152のDataRow [] DB = ds.Tables [ 0] .Select( " 荷受人(必須)=「" + SHR + " 'と連絡先電話番号(必須)='" + dhhm + " 'および都市( )= ' "+ szcs +"必要 'と受信者アドレス(必須)= ' "+ sjrdz +" 'および順序ユニット(オプション)= ' "+ dhdw +" 'と倉庫(必須)を出荷= ' "+ ckmc +"'及び運送会社(必須)= ' "+ ysgsbh +" 'と購入者のID(オプション)= ' "+ mjID +"' "); 
153 jgdh文字列="「; 
154 XH 1 = INT; 
155 detailMsg文字列= ""; 
156 HPMC文字列= ""; 
157 foreachの(のDataRow DBの項目)
158 { 
159 totalMoney = 0; //クリア第1のデータの第二サイクル
160 //定義総量算出変数
161 HPMC =項目[ "製品名(必須)"]のToString();. 
162 = SQL「SELECT HPDM tb_m_hpdm HPMC =からの'「+ hpmc.Trim()+ "'"; 
163 DT = IFACE.DBUtility.DbHelperSQL.QueryDT(SQL); 
164(dt.Rows.Count == 0)場合 
165 {
166 detailMsg + = "受信機" + "を製品名に対応する" SHR + HPMC + "をシステムに存在しません!" +; 
167が続行され; 
168} 
169そう
170 { 
171でdt.Rows HPDM = [0] [ " HPDM "]のToString(); 
172} 
173 //検証データ
174トライ
175 { 
(項目[176 SL = int.Parse"。番号(必須)「]のToString()); 
177 IF(SL <1。)
178 { 
179 + detailMsg = "受信機" + SHR + "項目名に対応する" + HPMC + "に対応がない未満またはゼロ形式に等しい数のN - \\。"; 
180} 
181} 
182キャッチ
183は、{ 
184 + detailMsg =「閉荷主"+ SHR +"項目名に対応する"+ HPMC +"誤っ充填フォームの数に対応するN - \\「; 
185続行; 
186} 
187トライ
188 { 
189 hkze =小数。パース(項目[ "価格(必須)"]のToString()); 
190} 
191キャッチ 
192 { 
193 detailMsg + =「受信機」+ SHR +「項目名に対応する」+ HPMC +「N-充填誤っ\\に対応する価格の形式は。」; 
194続行; 
195} 
196 //製品が存在するか否かを判定する番号は、割り当てられた
197 int型SS = 0; 
198 int型hgpkfpsl = 0; 
199 '+ HPDM + SQL = @ "HPDM = tb_i_dqkcjsからSELECT hgpkfpsl" " 'とckdm ='" + ckdm + "'"; 
200は、DT = IFACEです。 DBUtility.DbHelperSQL.QueryDT(SQL); 
201 IF(dt.Rows.Count> 0)
202 { 
203 hgpkfpsl int.Parse =(。dt.Rows [0] [ "hgpkfpsl"]のToString()); 
204 = SS + SL、
205 IF(SS> hgpkfpsl)
206 { 
207 detailMsg + =「荷受人:」在庫不足に割り当てることができる修飾された製品の数に+ SHR +「名、製品名」+ HPMC +」に対応し、ビジネス・メンテナンスお問い合わせください。N - \\「; 
208は続行します。
209} 
210} 
211 //が存在する倉庫内の製品棚の分析
@ SQL = 212 "tb_i_hphjからSELECT hjdm WHERE ckdm = '" + ckdm.Trim()+ " 'とHPDM ='" + hpdm.Trim()+ "'"; 
213 IFACE.DBUtility.DbHelperSQL.QueryDT DT =( SQL); 
214 IF(dt.Rows.Count> 0)
215 { 
216 dt.Rows HJ = [0] [ "hjdm"]のToString();. 
217} 
218そう
219 { 
220 detailMsg + =「受信機:棚に対応する「+ SHR +」名製品名「+ HPMC +」「+ HJ +」がシステムに存在しない、ビジネスや管理者は、nを維持してお問い合わせください- \\「; 
221は続行; 
222} 
223 //クエリ商品のコスト、卸売価格
224 //変数と売上高は、卸売価格変数に費用定義
225小数点たstockprice = 0; 
。226進価格= 0; 
227 //販売費 
230 IF(dt.Rows。== 0)カウント
{231 
228 SQL =「tb_p_stockpriceからあるstockpriceを選択 HPDM = " "+ hpdm.Trim()+"'およびckdm ='」+ ckdm.Trim()+ "'"。
245は継続します。
246} 
247そう
248 {+ 0 + " ''" + 0 + " ''" + 0 + " ''" + 0 + " ''" + jgdh + "」、0、NULL、GETDATE())"。
256 sqllist.Add(sql.ToString())。
257 XH ++; 
258} 
259 //销售单主表
250}
260 SQL = @ "tb_s_xsfhtzdzbへの挿入(djbh、ddbh、FPH、crklx、ysfs、yffd、fhdw、fhck、ghdw、dhdw、ZDR、zdsj、hpzt、fplx、jsfs、zrje、hkze、jghs、ysje、sfxysm、BZ1 、updatetime、shdz、SHR、shrdh、shrcs、xsry、fkje、buyer_nick)
261個の値( ' "+ djbh +"'、 ' "+ ddbh +"'、 ' "+ FPH +"'、 " "+ crklx +" '' "+ ysgsdm +" '' "+ yffd +" '' "+ fhdw +" '' "+ ckdm +" '' "+ ghdw +" '' "+ khdm +"」、 ' "+セッション[ "ユーザID"]。ToStringメソッド()+"'、GETDATE()、 ' "+ 1 +"'、 ' "+ 1 +"'、 ' "+ 1 +"'、 '」+ 0 + " ''" + orderTotalMoney + " ''" + 0 + " ''"+ 0 + " '0、'" + BZ + " 'GETDATE()、'" + sjrdz + " ''" + SHR + " ''" + dhhm + " ''" + szcs + " ' "' + + XSR" '' "+ orderTotalMoney +" '' "+ mjID +"「)「; 
262 sqllist.Insert(0、sql.ToString()); 
263 //行エラーが次に発生これらのデータはバックで実行されることはありません
「」= 264 errmesage //文字列、 
265 IF(detailMsg.Length> 0) 265 IF(detailMsg.Length> 0) 265 IF(detailMsg.Length> 0)
266 {回線エラー@ 263そのデータは、後に実行されないので、「」= 264 errmesage //文字列、266 {回線エラー@ 263そのデータは、後に実行されないので、「」= 264 errmesage //文字列、266 { 
267 resultMsg + = detailMsg; 
268 //順序生成が成功し、受信者の情報は、一時テーブルに保存されている
269 shrinfo.NewRowのDataRow DRS =(); 
270のDRS [ "荷受人(必須)"] = SHR。
271のDRS [ "電話(必須)"] = dhhm; 
272のDRS [ "都市(必須)"] = szcs; 
273のDRS [ "受信者アドレス(必須)"] = sjrdz; 
274のDRS [ "発注単位(必須) "] = dhdw; 
275のDRS ["出荷倉庫(必須) "] = ckmc; 
276 DRS ["運送会社(必須) "] = ysgsbh; 
277のDRS ["購入者ID(必須) "] = mjID; 
278 shrinfo.Rows.Add(DRS); 
258} 
280そう
281は{である
282 ymbh文字列=" 3001 "; 
283 shjg文字列=" IFAC "; 
284 //文字列ymbh2 =" 3002「。
文字列qmsx = 285」1。 "; 
286 = qmsx2文字列"2" ; 
287列lcbh = "1"; 
288列sfls = "0"。
289文字列djlx = "1";  
290の//デフォルトの小売プロセス、レビューページ1
291 SQL = @ "tb_sys_shjgbへの挿入(djbh、ymbh、qmsx、shjg、CREATEDATE)の値("" + djbh + " ''" + ymbh + " ''" + qmsx + " ''" + shjg + "」、GETDATE())"; 
292 sqllist.Add(sql.ToString())。
293 //默认的是零售流程、审核页面2 
294 SQL = @ "tb_sys_shjgbへの挿入(djbh、ymbh、qmsx、shjg、CREATEDATE)の値("" + djbh + " ''" + ymbh +「 '' "+ qmsx2 +" ''」+ shjg + "」、GETDATE())"。
295 sqllist.Add(sql.ToString())。
296 SQL = @ "tb_sys_lctzへの挿入(djbh、lcbh、sfls、djlx)の値("" + djbh + " ''" + lcbh + " ''" + sfls + " ''" + djlx +「」
303のDRS [ "都市(必須)"] = szcs; 
304のDRS [ "受信者アドレス(必須)"] = sjrdz; 
305のDRS [ "順序単位(必須)"] = dhdw; 
306のDRS [ "出荷倉庫(必須) "] = ckmc; 
307 DRS ["運送会社(必須) "] = ysgsbh; 
308 DRS ["買主ID(必須)「] = mjID; 
309 shrinfo.Rows.Add( DRS); 
310 I ++; 
311} 
312} 
313そう
314 { 
315続行; 
316} 
317} 
318} 
319キャッチ(例外EX)
320 { 
321のResponse.Write( "<SCRIPT>警告(「" + + ex.Message " 「)</ SCRIPT> "); 
322} 
323} 
324 IF(resultmsg.Length> 500)
325 { 
326 resultMsg resultmsg.Substring =(0、500)+" ......「。
327}
328のResponse.Write( "<SCRIPT>警告 ( ' 正常にインポート" + I + "n番目のデータ\\" resultMsg + + "')</ SCRIPT>"); 
329}

おすすめ

転載: www.cnblogs.com/ljs-13/p/12424934.html