我的C#之路-dataset、datatable的繫結、清空、新增、刪除等操作
一、dataset和datatable
先說說dataset和datatable,dataset是datatable的一個集合,也就是說一個dataset中可以包含多個datatable,可以用ds.tables[0] ds.tables[1]... 來表示,所以我的習慣一般是建立DataSet ds = new DataSet(),再將多種資料來源繫結到ds中,按照繫結的順序,通過ds.tables[i] 來進行資料操作。
1、繫結資料來源的方式:
從資料庫篩選後繫結:
或者datatable中的繫結:DataSet ds = new DataSet(); string connect = "Database=test;server=localhost;User Id=root;Password=root;"; MySqlConnection conn = new MySqlConnection(connect); conn.Open(); string select_store_info = "select *from information order by 城市;"; //獲取所有資訊並存入store_information cmd = new MySqlCommand(select_store_info, conn); MySqlDataAdapter adapter = new MySqlDataAdapter(cmd); adapter.Fill(ds, "store_information");//自己命名一個在ds中的表名"store_information",用於儲存本次的資料 conn.Close();
adapter.Fill(dt);//不用寫表名
用這種方法有個問題,那就是如果想在中間插入一段程式碼,那後面ds.tables[i]的程式碼都要改。如果想要更好地區分資料來源,可以通過兩種方法
(1)ds.Tables.Clear(); 如果確定之前繫結的資料在後面用不到了,那麼可以通過clear的方式,清空資料表並再次繫結新資料來源,將上述相關程式碼改為:
DataSet ds = new DataSet():
adapter.Fill(ds, "store_information");
這樣在後面呼叫時,都呼叫ds.tables[0]就行了
還有,clear方法有
(2)DataSet dsnew = new DataSet();
更方便的方法,再new一個形的dataset。
2、dataset常用操作
remove和canremoveds.tables.add("who");//在ds中加入一個datatable ds.tables.add(table1);//將table1加入到dataset集合中
if (dt.Tables.CanRemove(table))//驗證是否可被移除
dt.Tables.Remove(table);
或者:
if (dataSet.Tables.CanRemove(table))
dataSet.Tables.RemoveAt(0);
還有contains、copyto、indexof等一些方法不介紹了,可以參看MSDN關於datatablecollection方法類中的說明
二、將dataset中的資料繫結到datagridview、combobox中
combobox:
string selectstorename1 = "select name from store_arrange where 日期='"
+ day1.ToString("yyyy-MM-dd") + "' and 時間='" + comboBox1.Text + "';";
MySqlCommand cmd = new MySqlCommand(selectstorename1, conn);
MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
adapter.Fill(ds, "selecttime");
comboBox3.DisplayMember = "name";//DisplayMember是資料庫操作時,select出來的列名
comboBox3.ValueMember = "";<span style="white-space: pre;"> </span>//可隨意定義
adapter.Fill(ds, "selecttime");
comboBox3.DisplayMember = "name";//DisplayMember是資料庫操作時,select出來的列名
comboBox3.DataSource = ds.Tables[0].DefaultView;
datagridview:
dataGridView1.DataSource = dt;
或者dataGridView1.DataSource = ds.tables[0];
清空combobox和datagridviewcomboBox1.Items.Clear();
下次寫一下如何在datagridview中寫出個日曆
會包括datagridview對行、列的增刪改,datetime相關
相關推薦
我的C#之路-dataset、datatable的繫結、清空、新增、刪除等操作
一、dataset和datatable 先說說dataset和datatable,dataset是datatable的一個集合,也就是說一個dataset中可以包含多個datatable,可以用ds.tables[0] ds.tables[1]... 來表示,所以我的習慣一
c++之多型性(動態繫結)
多型性 指相同物件收到不同訊息或不同物件收到相同訊息時產生不同的實現動作。C++支援兩種多型性:編譯時多型性,執行時多型性。 a、編譯時多型性:通過過載函式實現 b、執行時多型性:通過虛擬函式實現 多型性可以簡單地概括為“一
清空繫結字典 清空combobox 遇到一些問題
我用 $("#asd").combobox("clear");//清空<input>繫結的字典 //用 var asd=$("asd").combogrid('grid').datagrid('getSeleceted').PHRASE; //asd還可以獲得清空前的值 //解決
我的c#之路----數制轉換
一、.Parse方法 語法格式: 1 int a = int.Parse(Console.ReadLine()); 二、顯示轉換 語法格式: 1 double a = double.Parse(Console.ReadLine()); 2 int b = (int)a; 三
專案實戰之vue爬坑之路:vue框架中如何註冊全域性公共過濾器filter、全域性公共外掛、全域性公共元件component
專案需求: 在我們的實際專案的開發中,經常會遇到一些可以重複利用的方法和元件,比如:我們在一個專案中可能會經常用到格式化時間的方法。這個時候就需要我們把這個方法封裝起來,註冊成一個全域性的過濾器,在整個專案中都可以使用,這樣既可以提高程式碼的使用效率,也便於我們
微信小程式填坑之路(三):佈局適配方案(rpx、px、vw、vh)
因為小程式是以微信為平臺執行的,可以同時執行在android與ios的裝置上,所以不可避免的會遇到佈局適配問題,特別是在iphone5上,因為螢幕尺寸小的緣故,也是適配問題最多的機型,下面就簡單介紹幾種適配方法。 rpx適配 rpx是小程式中
$Django 路飛之小知識回顧,Vue之樣式element-ui,Vue繫結圖片--mounted頁面掛載--路由攜帶引數
一 小知識回顧 1 級聯刪除問題 2 一張表關聯多個表,比如有manytomanyfileds forignkey,基於物件查詢存在的問題:反向查詢的時候 表名小寫_set.all()不知是哪個欄位queryset物件 所以說related_name='coursedetail_b
DataTable繫結Table控制元件中的資料(vb.net之經典應用)
Sub bind_table(ByVal tbl As DataTable)Dim cn AsNew SqlClient.SqlConnection(P_Con) Dim cmd As SqlClient.SqlCommand = cn.CreateCommand Dim adpt
鏈路聚合、Trunk、埠繫結和捆綁簡析
關於鏈路聚合(Link Aggregation)、Trunk和埠繫結/捆綁這三種概念很容易混淆,主旨都是利用鏈路冗餘提供伺服器、交換機和儲存間的可靠性,或利用冗餘埠實現負載均衡等;
小程式開發之檢視層WXML資料繫結、運算、組合及物件
WXML WXML(WeiXin Markup Language)是框架設計的一套標籤語言,結合基礎元件、事件系統,可以構建出頁面的結構。 資料繫結 WXML 中的動態資料均來自對應 Page 的 data。 簡單繫結 資料繫結使用 Mustache 語法(雙大括號)
微信標籤語言之頁面結構檔案--資料繫結、條件渲染
頁面結構檔案 WXML(weixin markup language)是框架設計的一套標記語言,用於渲染介面,WXML的渲染原理,通過一套標記語言,在不同平臺被解析為不同端的渲染檔案。 WXML具有資料繫結、列表渲染、條件渲染、模板、事件等能力。
C# Winform 關於ListView控制元件繫結DataTable
今天用到ListView控制元件,這裡總結一下ListView控制元件繫結DataTable的方法 下面需要特別注意的是,繫結的過程中實現繫結控制元件的column的屬性,再進行item的繫結。 與DataGridView不同的是,不能直接使用DataSourse繫結, 再
DataSet,DataTable繫結gridview
前臺 <asp:Button ID="Button1" runat="server" Text="顯示" onclick="Button1_Click" /> <asp:Button ID="Button2" runat="server" onclick
C++ 之路 vector的記憶體管理與效率
好長時間沒有寫部落格了,重新開始寫又有一點不一樣的感覺,有點悵然若失,或者說是又有點小期待,一直以來狀態不是很好,但不管如何還是要堅強地、勇敢地走下去。 言歸正傳 C++中vector是一項大殺器,相當於可自動變長的陣列,在不改變容量的情況下,其效率
[js高手之路] es6系列教程 - 叠代器,生成器,for...of,entries,values,keys等詳解
== 我會 item 獲取 prot ron 原型對象 檢測 ges 接著上文[js高手之路] es6系列教程 - 叠代器與生成器詳解繼續. 在es6中引入了一個新的循環結構for ....of, 主要是用來循環可叠代的對象,那麽什麽是可叠代的對象呢? 可叠代的對象一
Vue之表單控制元件繫結
1.text <p>text輸入文字</p> <span>Hello {{name}}</span> <input type="text" v-model="name" placeholder="yous name" name
阿里雲CentOS 7.3 裸機搭建 Apache、MySql、PHP、Node環境、並繫結域名
阿里雲CentOS 7.3 裸機搭建 Apache、MySql、PHP、Node境、並繫結域名 最近一直想在阿里雲申請一個伺服器,可以在上面跑一些服務,輸入域名訪問,那種感覺肯定很不一樣。所以就花學生價買了一年,還是挺划算的。 域名備案花了挺長時間,又上傳照片又打電話核實的挺麻煩的,不過
【常用】查詢輸入框:一個關鍵字繫結多個屬性(包括int、string不同的型別)
從input獲取輸入一個待查詢關鍵字key,前端不區分,傳到後臺再進行處理,基本邏輯如下: //根據訂單號(int)或者供應商名稱(string)查詢訂單 if (!string.IsNullOrEmpty(key)) { var Id = MathTools.ToInt(key);
深入理解JavaScript之this的四種繫結
之前對this的四種繫結不太理解,好在瀏覽了https://www.cnblogs.com/xiaohuochai/p/5735901.html這篇博文,才得以清晰思路,接下來我再次總結this的四種繫結機制。 1 this的四種繫結機制 在JavaS
vue起步之三v-bind資料繫結
設定一個數據為website的值為http://www.baidu.com 在html中我們進行繫結通過v-bind:屬性名=“鍵名” 如:<a v-bind:href="website">web開發</a> 注意:這裡的website沒有兩個大括號