亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

近幾天對DataSet的新認識

2024-07-10 13:14:45
字體:
來源:轉載
供稿:網友
做管理軟件總是在和DataTable,DataSet,DataGridView打交道,以前經常用,但是自己思考的問題不多,用的都是最笨的方法,做出來的都是最丑陋的界面和低效率的程序,上周某天晚上把DataGridView認真的研究了一下,主要是界面上的東西,覺得被我改進后的界面看起來就是不一樣了,呵呵~我覺得看起來還可以的界面代碼: 
復制代碼代碼如下:

DataGridViewCellStyle style = new DataGridViewCellStyle(); //自定義一種單元格樣式. 
style.BackColor = Color.LightCyan; //其實就是換種顏色. 
dataGridView1.RowHeadersVisible = false; //覺得顯示在行頭的那個方塊不好看,去掉~ 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //單擊某個單元格,選中其所在的行,這樣看數據蠻方便. 
dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //用戶不能調整列標題欄的大小. 
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; //列寬度樣式,最長的數據能全部顯示,這樣就不會出現"....."了. 
dataGridView1.AlternatingRowsDefaultCellStyle = style; //奇數行的樣式設置為先前定義的樣式,讓相鄰行有顏色反差. 

還有很多效果沒用~但是這樣簡單的幾行還是能蠻大的改善程序的美觀性~ 

然后說說數據綁定的新認識,以前一直知道這東西,但不知道怎么用,也沒花時間去研究,但是這些天在CSDN的論壇里逛時,好象很多人都用這方面問題,才讓我有動力去研究這些用法.哎~有時候覺得自己蠻懶的~經常要做數據處理方面的東西,竟然還是今天才第一次對它有深入的了解~慚愧!! 

說說具體的實現過程吧~連接SQL Server數據庫的SqlConnection和SqlCommand必不可少~其次是SqlDataAdapter(其實這個也經常用,但用的只是用它來讀數據),其實這個數據適配器用處很大,使用它可以很方便的從數據庫里讀取數據,通過DataGridView顯示給用戶,用戶修改DataGridView里的數據后,再通過SqlDataAdapter可以把修改的數據反映到數據庫里,期間不需要我們寫任何操作數據庫代碼,.Net框架給我們包辦!而且這些數據只是存儲在DataSet或者DataTable這樣的緩存中,不用一直保持數據庫連接~哦~忘了,還需要使用SqlCommandBuilder來自動生成一些修改的SQL語句,簡單的實現代碼如下: 

復制代碼代碼如下:

DataSet ds = null; 
SqlDataAdapter adapter = null; 
SqlCommandBuilder sqlbuilder = null; 

//該按鈕讀取數據,并綁定數據 
private void button1_Click(object sender, EventArgs e) 
...{ 
ds = new DataSet(); 
SqlConnection cn = new SqlConnection("Data Source=.;User ID=sa;Password=0;Initial Catalog=BMIS"); 
SqlCommand cm = new SqlCommand(); 
adapter = new SqlDataAdapter(cm); 
sqlbuilder = new SqlCommandBuilder(adapter); 
cm.Connection = cn; 
cm.CommandType = CommandType.Text; 
cm.CommandText = "select * from [providerInfo]"; 
adapter.Fill(ds); //該方法把得到的數據放入一個DataTable中 
dataGridView1.DataSource = ds.Tables[0]; 把數據綁定到DataGridView 


//向數據庫返回修改的數據. 
private void button2_Click(object sender, EventArgs e) 
...{ 
adapter.Update(ds); 
用戶在DataGridView中做的數據改變會反映到它所綁定的DataTable里,最后使用SqlDataAdapter的Update方法,把修改反映到數據庫中,感覺使用的DataTable是一個中間存儲數據工具,而SqlDataAdapter是一個中間數據操作工具,兩者結合起來完成更新數據源的任務. 

現在我想說一下這段代碼運行后在SQL Server里具體做的是什么事情.首先,假設我在DataGridView顯示數據后,修改了一行數據,增加了一行數據.打開SQL Server的事件探察器,對一次操作做了全程的監聽.登錄,執行查詢語句并無二樣,但是當我執行一次Update時,都會調用一個名為sp_reset_connection的存儲過程,看名字猜想應該是連接數據庫的意思,然后針對每一行修改的數據執行一個名為exec sp_executesql的存儲過程,更新數據庫,比如我修改一行后的數據得到的是這么一條語句"exec sp_executesql N'UPDATE [providerInfo] SET [telNo] = @p1 WHERE (([id] = @p2) AND ([name] = @p3) AND ((@p4 = 1 AND [address] IS NULL) OR ([address] = @p5)) AND ((@p6 = 1 AND [telNo] IS NULL) OR ([telNo] = @p7)) AND ((@p8 = 1 AND [tradeSum] IS NULL) OR ([tradeSum] = @p9)) AND ((@p10 = 1 AND [remark] IS NULL) OR ([remark] = @p11)))', N'@p1 varchar(3),@p2 int,@p3 varchar(2),@p4 int,@p5 varchar(3),@p6 int,@p7 varchar(4),@p8 int,@p9 int,@p10 int,@p11 varchar(3)', @p1 = '110', @p2 = 1, @p3 = 'WT', @p4 = 0, @p5 = 'ABC', @p6 = 0, @p7 = '0000', @p8 = 0, @p9 = 8, @p10 = 0, @p11 = 'AAA'", 

而新增一行的語句是"exec sp_executesql N'INSERT INTO [providerInfo] ([name], [address], [telNo], [tradeSum], [remark]) VALUES (@p1, @p2, @p3, @p4, @p5)', N'@p1 varchar(2),@p2 varchar(8000),@p3 varchar(8000),@p4 int,@p5 varchar(8000)', @p1 = 'TT', @p2 = NULL, @p3 = NULL, @p4 = NULL, @p5 = NULL" 

這樣看起來就比較明白SqlDataAdapter的工作機制了,記錄下發生變化的行,通過SqlCommanBuilder生成相應的SQL語句,再執行,達到修改目的. 

但是我做了一下對多表關聯的得到的數據進行修改,很遺憾,修改是不成功的,其實也不應該成功,比如我在學生信息的導師的字段里存的僅僅是老師的ID,而顯示的是根據導師信息表關聯后導師的真實姓名,用戶如果修改了導師的姓名,反應到學生表里的不可能是老師的ID,修改也就不成功.相信這個問題是有解決辦法的,只是我還沒發現,應該繼續研究! 

最后,羅嗦幾句說說今天的事情.下午體育課測50米,在搶跑的情況下跑了個6秒2~有點假~下課后和大一的幾個院隊的同學打球~打到5點~回來去澡堂洗澡我真怕我摔在澡堂里~實在沒力氣了~不過跟他們打球心情還是很好的,首先他們打球不菜,討厭和菜的人打~其次他們充滿活力的樣子讓我好象也回到了大一的感覺~天天打球的生活真好!明天早上英語課默單詞~~不想去了~~所以今晚決定stay up coding!!!還好還有點吃的~ 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清一级大片| 亚洲曰本av电影| 97视频在线观看成人| www.欧美精品一二三区| 日韩精品亚洲视频| 一本色道久久88综合日韩精品| 欧美精品久久久久久久| 国产婷婷97碰碰久久人人蜜臀| 国模精品视频一区二区三区| 亚洲人午夜精品| 精品国产一区二区三区久久狼5月| 色综合视频网站| 久久精品最新地址| 91久久国产精品91久久性色| 久久精品中文字幕一区| 国产高清在线不卡| 亚洲第一福利在线观看| 久久香蕉国产线看观看av| 亚洲欧美一区二区三区在线| 国产精品第2页| 青草成人免费视频| 美日韩丰满少妇在线观看| 色综合久综合久久综合久鬼88| 久久国产精品影视| 国产一区二区在线播放| 亚洲视频综合网| 91tv亚洲精品香蕉国产一区7ujn| 亚洲国产97在线精品一区| 精品无人区乱码1区2区3区在线| 久久国产精品99国产精| 97碰在线观看| 国产精品久久久久aaaa九色| 国产99久久久欧美黑人| 日本一区二区在线免费播放| 国外成人在线视频| 成人精品一区二区三区| 国产精品xxxxx| 欧美乱人伦中文字幕在线| 亚洲国产精品推荐| 日韩在线免费高清视频| 亚洲毛片在线看| 色青青草原桃花久久综合| 欧美精品亚州精品| 国产一区二区三区视频在线观看| 亚洲综合在线播放| 国产精品久久久久9999| 久久综合久久美利坚合众国| 国产日韩欧美在线播放| 97国产精品久久| 欧美日韩国产精品专区| 成人淫片在线看| 一区二区在线视频| 欧美性高潮在线| 日韩精品极品视频免费观看| 中文字幕无线精品亚洲乱码一区| 亚洲精品999| 日韩中文字幕免费视频| 中文字幕欧美日韩精品| 国产精品美腿一区在线看| 91黄色8090| 国产极品精品在线观看| 日本视频久久久| 国产日韩精品综合网站| 97涩涩爰在线观看亚洲| 亚洲一区二区三区在线视频| 国产在线播放不卡| 日韩av大片免费看| 91精品中国老女人| 国产精品老女人视频| 国产欧美日韩免费| 欧美一级淫片videoshd| 成人h片在线播放免费网站| 91成人性视频| 国产日韩欧美夫妻视频在线观看| 欧美壮男野外gaytube| 最近2019中文字幕在线高清| 久久人人爽人人爽人人片av高清| 精品人伦一区二区三区蜜桃网站| 日韩少妇与小伙激情| 77777少妇光屁股久久一区| 日韩在线观看av| 国产精品高精视频免费| 国产精品美女免费| 69久久夜色精品国产69乱青草| 色吧影院999| 97成人在线视频| 欧美孕妇孕交黑巨大网站| 黑人巨大精品欧美一区二区一视频| 国产欧美日韩中文字幕| 欧美日韩在线影院| 亚洲精品在线观看www| 久久久极品av| 亚洲国产精品久久久久秋霞不卡| 亚洲视频在线观看| 午夜精品在线观看| 国产精品入口日韩视频大尺度| 国产97色在线|日韩| 欧美极品少妇与黑人| 亚洲天堂网站在线观看视频| 久久久精品2019中文字幕神马| 日韩精品视频观看| 精品久久久久久久久久国产| 国产性猛交xxxx免费看久久| 亚洲成人黄色网址| 国产亚洲精品久久久久久| 欧美一级大片视频| 亚洲最新中文字幕| 色偷偷av一区二区三区乱| 国产成人亚洲综合91精品| www.日本久久久久com.| 最近的2019中文字幕免费一页| 久久久精品一区二区三区| 亚洲一级黄色片| 成人做爽爽免费视频| 欧洲s码亚洲m码精品一区| 久久伊人91精品综合网站| 国产99久久精品一区二区 夜夜躁日日躁| 92国产精品久久久久首页| 97婷婷大伊香蕉精品视频| 国产欧美久久一区二区| 日韩成人av在线播放| 久久人人看视频| 国产欧美一区二区白浆黑人| 亚洲成人av中文字幕| 国色天香2019中文字幕在线观看| 亚洲精品自拍第一页| 亚洲欧洲黄色网| 亚洲电影免费观看高清完整版在线观看| 2020欧美日韩在线视频| 久久久www成人免费精品| 亚洲精品美女网站| 国产欧美日韩中文| 日韩美女激情视频| 最新的欧美黄色| 欧美黑人极品猛少妇色xxxxx| 欧美亚洲另类激情另类| 97视频在线观看亚洲| 高清欧美性猛交xxxx| 91在线免费网站| 久久精品成人欧美大片| 国产欧美日韩免费| 欧美尤物巨大精品爽| 亚洲精品久久视频| 精品国产一区二区三区久久| 永久免费毛片在线播放不卡| 亚洲激情国产精品| 亚洲a∨日韩av高清在线观看| 亚洲国产婷婷香蕉久久久久久| 日韩av免费在线播放| 在线丨暗呦小u女国产精品| 日韩国产在线看| 国产91精品久久久久| 91黑丝高跟在线| 欧美精品久久久久久久久| 欧美一区二区影院| 国产精品欧美日韩| 亚洲四色影视在线观看| 国产免费一区二区三区在线能观看| 欧美网站在线观看| 亚洲日韩第一页| 欧美日韩国产一区中文午夜| 国产成人精品在线观看| 欧美特级www| 日韩av在线资源|