。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}
EXECLテーブルからメインデータの内部に同時に導入し、テーブル(asp.netウェブフォーム)
おすすめ
転載: www.cnblogs.com/ljs-13/p/12424934.html
おすすめ
ランキング