青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 298  文章 - 377  trackbacks - 0
<2016年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(34)

隨筆分類

隨筆檔案

文章檔案

相冊

收藏夾

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\Users\Administrator\Desktop;','select * from Num.txt') 
select * from opendatasource('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=C:\Users\Administrator\Desktop')...[Num.txt]
BULK INSERT master..Temp FROM 'C:\Users\Administrator\Desktop\Num.txt' WITH  ( FIELDTERMINATOR =' ', ROWTERMINATOR= '\n') 

/** 導入文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'
 
/** 導出文本文件
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'
 
導出到TXT文本,用逗號分開
exec master..xp_cmdshell 'bcp "庫名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'

在做一些web數據庫管理系統的時候經常要實現將帳戶批量注冊的功能,今天就來講講如何在C#-web項目中將txt文件和excel文件導入SQL2000數據庫。
1.數據庫準備
在SQL2000數據庫的實例數據庫pubs中建立一個數據表txtInsert,字段很簡單:id,name兩個。
2.txt文本文件導入
對于數據文件導入與導出SQL2000提供了BULK INSERT和BCP語句,在這里可以使用BULK INSERT命令實現。假設在c盤上有一個文本文件stu.txt內容為:
    1,tom
    2,jack
    3,jhon
    ......
實現導入的C#代碼如下:
protected System.Web.UI.HtmlControls.HtmlInputFile fName;  
protected System.Web.UI.WebControls.Button BtnInsert;
//上面兩個控件自己添加
private void BtnInsert_Click(object sender, System.EventArgs e)
  
{
                
string fPath=this.fName.PostedFile.FileName;//獲得要導入的文本文件                  
            string extName=fPath.Substring(fPath.LastIndexOf(".")+1);//獲得文件的擴展名            
            SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//數據庫連接對象
            con.Open();
            
try
      
{                    
                    SqlCommand com
=new SqlCommand("BULK INSERT pubs.dbo.txtInsert FROM '"+fPath+"' WITH  (FIELDTERMINATOR = ',',ROWTERMINATOR= '\n')",con);
                       
//其中的FIELDTERMINATOR=','指明字段間所使用的分隔符為逗號
                       
//其中ROWTERMINATOR= '\n'指明記錄間所使用的分隔符為回車
                    com.ExecuteNonQuery();
                    Response.Write(
"<script language=javascript>alert('數據導入成功!')</script>");                    
                }

             
catch (SqlException SQLexc)
                
{
                    Response.Write(
"導入數據庫時出錯:" + SQLexc.ToString());
                }

con.Close();
}

好了,這個txt文件的導入相對簡單,在數據庫中我也沒有設置主鍵,我在里面也沒有加出錯回滾事務操作,在下面的excel文件的導入中介紹。
3.excel文件的導入
在c盤里建立一個stu.xls文件,在sheet1工作表中有兩列數據如下:
     編號  姓名
     1        tom
     2        jack
     3        john
     ......
注意,工作表的第一行是作為標題行的不會被插入到數據庫中,真正導入從第二行開始。
為了演示事物出錯回滾,在這里將txtInsert數據庫表中的id字段設置為主鍵。實現的C#代碼如下:
private void BtnInsert_Click(object sender, System.EventArgs e)
  
{
   
string fPath=this.fName.PostedFile.FileName;//獲得要導入的文本文件     
   string extName=fPath.Substring(fPath.LastIndexOf(".")+1);//獲得文件的擴展名   
   SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//數據庫連接對象
   con.Open();   
    
//注意下面的連接字符串,是它起到了導入的作用
    SqlCommand excelCmd=new SqlCommand("insert into txtInsert select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE="+fPath+"',Sheet1$)",con);
    SqlTransaction myTran
=con.BeginTransaction();//開始一個事務操作
    excelCmd.Transaction=myTran;
    
try
    
{       
     excelCmd.ExecuteNonQuery();
     myTran.Commit();
//提交事務       
     Response.Write("<script language=javascript>alert('數據導入成功!')</script>");
    }

    
catch (SqlException err)
    
{       
     myTran.Rollback(); 
//出錯回滾事務操作
     
//以下三行是去掉數據庫出錯信息中的非法字符單引號、回車和換行符,否則在使用時javascript代碼將有語法錯誤
     
//因為js的編碼和c#的編碼不同
     string errString=err.Message.Replace("'"," ");
     errString
=errString.Replace(Convert.ToChar(13).ToString(),"");
     errString
=errString.Replace(Convert.ToChar(10).ToString(),"");
     
//顯示出錯信息框
     Response.Write("<script language=javascript>alert('導入數據庫時出錯!詳細信息:"+errString+"')</script>");         
    }
   
   con.Close();
  }
這里“顯示出錯信息框”開始我沒有田間那三行代碼,結果搞了半天,最后還是在html文件中發現javascript代碼部分出現了分行,老是提示“未結束的字符串常量”,所以導致不能打開信息框,郁悶死我了,花了好多時間。
4.將excel中部分列導入數據庫的方法
上面講了關于將整個excel文件導入數據庫的方法,那么在實際項目中遇到將excel文件中若干列導入數據庫怎么辦的呢,原理差不多,我就將代碼直接給出了:
                   string  fPath=this.fName.PostedFile.FileName;//獲得要導入的文本文件     
                   string  extName=fPath.Substring(fPath.LastIndexOf(".")+1);//獲得文件的擴展名   
                   SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//數據庫連接對象
                   con.Open();                
                   string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '"+fPath+"';Extended Properties=Excel 8.0";
                OleDbConnection cnnxls 
= new OleDbConnection (mystring);
                OleDbDataAdapter myDa 
=new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
                DataSet myDs 
=new DataSet();
                myDa.Fill(myDs);
                
if(myDs.Tables[0].Rows.Count > 0)
                
{
                    
string strSql = "";
                    
string CnnString="Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd=";
                    OleDbConnection conn 
=new OleDbConnection(CnnString);
                    conn.Open ();
                    OleDbCommand myCmd 
=null;                    
                    
for(int i=0; i<myDs.Tables[0].Rows.Count;i++)//第一個工作表中行數,不包括第一行,
                    {
                        
strSql="insert into txtInsert(id,name) values (";
                        strSql 
+= myDs.Tables[0].Rows[i].ItemArray[0].ToString() + ", '";
                        strSql 
+= myDs.Tables[0].Rows[i].ItemArray[1].ToString() + "')";
                        myCmd
=new OleDbCommand(strSql,conn);
                        
try
                        
{                            
                            myCmd.ExecuteNonQuery();                                                        
                            Response.Write(
"<script language=javascript>alert('數據導入成功!')</script>");
                        }

                        
catch (OleDbException err)
                        
{                                                       
                            Response.Write(
"導入數據庫時出錯:" +err.ToString());
                            
break;
                        }

                    }

                    conn.Close();
其他部分代碼自己加吧,這里就是出錯失誤回滾有點不好處理,請高手指教!!
posted on 2013-03-18 21:11 聶文龍 閱讀(1542) 評論(0)  編輯 收藏 引用 所屬分類: DatabaseVisual C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜视频久久久| 亚洲国产一二三| 欧美综合第一页| 小黄鸭精品密入口导航| 欧美.www| 欧美成在线观看| 欧美黄污视频| 欧美视频一区二区在线观看 | 狠狠色香婷婷久久亚洲精品| 国产一区91精品张津瑜| 国模精品一区二区三区色天香| 国产精品人人爽人人做我的可爱| 国产欧美日韩91| 国产综合视频在线观看| 亚洲第一区在线观看| 亚洲另类一区二区| 亚洲专区在线视频| 久久久99免费视频| 欧美福利一区二区三区| 最近中文字幕mv在线一区二区三区四区| 欧美v国产在线一区二区三区| 最新国产精品拍自在线播放| 一区二区精品国产| 久久精品国产精品 | 一区二区三区四区国产| 欧美在线观看天堂一区二区三区| 欧美gay视频| 亚洲视频中文| 麻豆久久婷婷| 国产日韩精品在线| 99香蕉国产精品偷在线观看| 久久精品夜色噜噜亚洲aⅴ| 欧美激情第二页| 久久se精品一区二区| 欧美视频中文字幕在线| 久久综合网色—综合色88| 性欧美激情精品| 欧美中文字幕第一页| 久久精品国产综合精品| 亚洲欧洲视频在线| 亚洲综合电影| 欧美mv日韩mv亚洲| 欧美日韩国产三区| 影音先锋中文字幕一区二区| 亚洲午夜电影| 久久国产手机看片| 欧美成人精品| 国产精品女主播在线观看| 国产一区二区精品在线观看| 亚洲欧洲一区二区天堂久久| 小黄鸭视频精品导航| 亚洲国产一区在线| 亚洲综合精品四区| 欧美成年人视频| 亚洲一区二区在线视频| 久久久午夜视频| 国产精品高潮呻吟久久av黑人| 国产亚洲网站| 亚洲婷婷免费| 欧美激情四色| 香蕉久久一区二区不卡无毒影院| 免费观看在线综合色| 国产亚洲在线观看| 亚洲午夜日本在线观看| 久久久99精品免费观看不卡| 欧美一区二区精品| 狂野欧美激情性xxxx欧美| 欧美极品在线观看| 91久久国产综合久久| 久久久久久久尹人综合网亚洲| 亚洲麻豆国产自偷在线| 在线一区二区日韩| 国产欧美一区二区精品仙草咪| 亚洲视频日本| 亚洲经典视频在线观看| 久久精品国产一区二区三区 | 久久一区二区三区超碰国产精品| 欧美视频中文在线看 | 亚洲美女免费视频| 国产精品99久久久久久久vr | 欧美亚洲视频| 亚洲国产精品久久久久婷婷老年| 欧美一区二区三区视频免费| 欧美小视频在线| 国产亚洲视频在线观看| 亚洲久色影视| 欧美福利电影网| 久久婷婷亚洲| 亚洲福利在线看| 欧美高清视频| 欧美精品成人91久久久久久久| 亚洲精品国产系列| 亚洲人精品午夜| 欧美偷拍一区二区| 亚洲香蕉在线观看| 这里只有精品电影| 国产精品视频免费观看www| 亚洲女同精品视频| 亚洲愉拍自拍另类高清精品| 国产精品久久久久久久午夜| 午夜激情综合网| 欧美在线关看| 亚洲第一精品在线| 99在线热播精品免费| 欧美偷拍一区二区| 欧美一区二区三区精品| 香蕉久久夜色精品国产使用方法| 国产毛片久久| 欧美二区在线| 国产精品日本精品| 欧美不卡视频一区发布| 久久久爽爽爽美女图片| 在线亚洲国产精品网站| 午夜久久美女| 亚洲欧洲精品一区二区三区不卡 | 亚洲人被黑人高潮完整版| 欧美精品久久一区二区| 亚洲午夜激情在线| 欧美在线观看天堂一区二区三区| 男人的天堂亚洲在线| 亚洲在线国产日韩欧美| 亚洲免费在线| 国产欧美一区二区三区久久| 亚洲午夜久久久久久尤物| 亚洲精品少妇| 国产三级精品三级| 六月婷婷一区| 亚洲欧美综合精品久久成人 | 亚洲欧美影院| 欧美日韩国产在线看| 日韩一级在线观看| 老牛嫩草一区二区三区日本| 亚洲手机在线| 一区二区三欧美| 亚洲一区一卡| 亚洲欧美日韩精品| 中文亚洲视频在线| 亚洲小说欧美另类婷婷| 夜夜爽99久久国产综合精品女不卡| 亚洲成人在线视频播放| 亚洲电影免费观看高清完整版在线| 怡红院精品视频在线观看极品| 国产性做久久久久久| 国产亚洲成年网址在线观看| 极品av少妇一区二区| 久久综合一区二区三区| 亚洲欧美日韩综合国产aⅴ| 亚洲精品国精品久久99热一| 久久久99久久精品女同性| 亚洲精品韩国| 在线 亚洲欧美在线综合一区| 国产日韩精品一区二区三区| 欧美日韩国产区| 欧美日韩免费一区| 最新亚洲激情| 欧美主播一区二区三区美女 久久精品人 | 国产乱肥老妇国产一区二| 精品99一区二区三区| 亚洲精品女av网站| 美女日韩欧美| 国产一区二区三区四区老人| 亚洲乱码视频| 免费在线一区二区| 亚洲网友自拍| 欧美新色视频| 亚洲五月六月| 亚洲精品一区二区三区四区高清 | 欧美高清视频一区| 亚洲乱码国产乱码精品精| 久久久久久久久久看片| 欧美一区在线直播| 国产精品综合久久久| 午夜精品久久久久久99热软件| 99riav国产精品| 欧美巨乳在线| 亚洲在线一区二区| 欧美亚洲一区二区在线观看| 国产精品综合视频| 久久综合久久综合久久| 久久9热精品视频| 亚洲国产精品专区久久| 亚洲日本免费| 国产日产精品一区二区三区四区的观看方式| 亚洲精品一区二区在线| 91久久久久久久久| 欧美日本三级| 欧美一级视频精品观看| 亚洲制服丝袜在线| 亚洲日本欧美天堂| 亚洲一区二区av电影| 在线观看91精品国产麻豆| 亚洲精品免费一区二区三区| 国产午夜久久久久| 亚洲日本黄色| 亚洲高清在线精品| 欧美在线观看天堂一区二区三区| 亚洲最新中文字幕| 久久亚洲不卡| 久久久91精品| 久久久久天天天天|