关于DataGridView控件通过dataset直接更新数据库
今天做了一个小功能,对一个数据库表中的信息直接进行增、删、改操作,用到了DataGridView控件。 功能描述:窗体加载时,查询出表中的内容,并绑定到DataGridView中显示。可以对表中的数据进行增/删、改操作。 开始用到了比较麻烦的方法,为DataGridView添加
今天做了一个小功能,对一个数据库表中的信息直接进行增、删、改操作,用到了DataGridView控件。
功能描述:窗体加载时,查询出表中的内容,并绑定到DataGridView中显示。可以对表中的数据进行增/删、改操作。
开始用到了比较麻烦的方法,为DataGridView添加了contextMenuStrip,提供了三种方法。比较麻烦。下面是一部分代码:
1 privatevoid 删除ToolStripMenuItem_Click(object sender, EventArgs e)
2 {
3 int[] row =newint[dataGridView1.SelectedRows.Count]; //存储选定的行的索引号
4 int[] id =newint[dataGridView1.SelectedRows.Count]; //存储选定行的id号 用于删除时查询的条件
5 int count = dataGridView1.SelectedRows.Count; //存储开始选定了的行数
6 for (int j =0; j dataGridView1.SelectedRows.Count; j++) //利用循环将选定的行索引存入row【】数组中
7 {
8 row[j] = dataGridView1.SelectedRows[j].Index;
9 }
10 for (int i =0; i count; i++) //利用循环
11 {
12
13 dataGridView1.CurrentCell = dataGridView1[0, row[i]]; //设置当前活动的单元格的索引是【0,row【i】】,即所有选定行的第一列的值(Att_Id)
14 id[i] =Convert.ToInt32(dataGridView1.CurrentCell.Value);
15
16 }
17 bool yesno=false;
18 if (MessageBox.Show("确定要删除吗","删除确认",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) == DialogResult.OK)
19 {
20 for (int s =0; s count; s++)
21 {
22 string sql ="Delete from Attributes where Att_Id=@att_id";
23 SqlParameter[] p =new SqlParameter[]{
24 new SqlParameter("@att_id",SqlDbType.Int)};
25 p[0].Value = id[s];
26 int val = (int)sqlhelper.delete(sql, p);
27 if (val >0)
28 {
29 yesno =true;
30 }
31 else
32 {
33 yesno =false;
34 break;
35 }
36
37 }
38 if (yesno ==true)
39 {
40 MessageBox.Show("删除成功!");
41 }
42 databind();
43 }
44 else
45 {
46
47 }
48 }
上面仅仅是删除这一项功能。所以非常麻烦!!
于是,想到了另一种比较简单而且很直观的方法,利用SqlDataAdapter的update方法,直接在DataGridView中进行编辑(添加新数据、更改数据),只需给删除功能另加个按钮或者弹出菜单,datagridview1.Rows.RemoveAt(dataGridView1.CurrentRow.Index)删除选中行,有一点每种不足就是没删除一条就要点击一下按钮,而第一种方法可以一次性删除多条数据。
View Code
1 privatevoid leixing_Load(object sender, EventArgs e)
2 {
3
4 sqlhelper.conn.Open();
5
6 da =new SqlDataAdapter("Select Class_Id as '编号',Class_Type as '商品类型' from Class", sqlhelper.conn);
7 dt =new DataSet();
8 da.Fill(dt, "info");
9 dataGridView1.DataSource = dt.Tables[0];
10 //dataGridView1.DataMember = "info";
11 dataGridView1.Columns[0].Width =130;
12
13
14 sqlhelper.conn.Close();
15
16 }
再添加一个按钮叫做“保存更新” 代码:
这样就实现了全部功能。比较简单。
View Code
1 privatevoid baocun_Click(object sender, EventArgs e)
2 {
3
4
5 if (dt.HasChanges())
6 {
7 SqlCommandBuilder scmb =new SqlCommandBuilder(da);
8 da.Update(dt.Tables[0]);
9 dt.AcceptChanges();
10 }
11
12
13
14 }
这样做的前提是,数据表必须设定主键。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

隨著Web應用程式的普及,富文本編輯器成為Web開發中不可或缺的一個工具。而在使用Go語言進行網頁開發時,我們也需要選擇一個適合的富文本編輯器控制項來豐富我們的網站和應用程式。在本文中,我們將會探討Go語言Web開發常見的富文本編輯器控制項。 FroalaEditorFroalaEditor是一款流行的富文本編輯器控件,被廣泛應用於Web開發中。它具有現代化

我們在使用excel辦公軟體的時候,如果能夠巧妙地使用一些控件,可以幫助我們在excel表格中做出比較專業的效果,例如添加選擇控件,可以使填表人員輕鬆的完成表格的填寫。下邊,我們就示範excel選擇控制的製作方法,希望對你有幫助! 1.首先,我們新建並開啟一個空白的excel表格。 2、新增“開發工具”選項卡,點擊左上側檔案按鈕,找到“Excel選項”,之後,我們在自訂功能區的選項內找到開發工具,勾選,使其前邊出現對號就可以。 3.回到excel工作介面,就可以看到「開發工具」選項卡了,一般情況,不

深入了解Ajax控制:常見的有哪些?介紹:在現代Web開發中,Ajax(AsynchronousJavaScriptandXML)成為了一種流行的技術,它可以實現網頁局部刷新,提升使用者體驗。而在開發中,我們通常使用Ajax控制來簡化和加速我們的開發流程。本文將深入了解Ajax控件,介紹一些常見的控件及其功能。一、jQueryAjax:jQueryA

panel控件的使用步驟是首先創建了一個Panel控件,並設定了其寬度、高度、背景顏色、邊框顏色、邊框寬度和內邊距,創建了兩個按鈕,並將它們添加到Panel控件中,最後將Panel控制項加入到窗體中。

近日ColorOS15率先開啟Beta內測,有網友曝光了相關介面,來看看如何~如上圖所見,有網友曬出了OPPOFindX7升級ColorOS15Beta後的「關於本機」介面,除了頂部圖案有大變外,下半部的配置資訊也從先前的兩列變成了全單列縱向分佈。附上華為、榮耀、小米、OPPO、vivo、魅族6家品牌手機現在最新版本下的“關於本機/手機”界面,大家可以來說說更喜歡哪家的佈局~具體關於ColorOS15,此前消息稱其除了大範圍支援LivePhoto實況照片外,還將"支援AirDrop&

Web標準控制項大揭秘:必備的介面元素解析導語:Web標準控制項是網頁設計中不可或缺的一部分,它們為使用者提供了豐富的互動體驗和友善的介面,具有重要的作用。本文將揭露幾種必備的Web標準控件,為讀者解析它們的功能和使用方法。一、按鈕控制按鈕控制是Web介面設計中最常見、最基礎的元素之一,用來觸發某種操作。它通常具有以下幾個屬性:文字內容:按鈕上顯示的文字訊息。樣式

DataSet物件的概念:DataSet物件可以視為一個(Catch),它可以吧從資料庫中所查到的資料保留下來,甚至可以將整個資料庫暫存起來DataSet是資料在記憶體中的表示形式DataSet物件和數據來源的線上發生的很短暫,我們在取得資料後就立即和資料來源斷開了,等到資料修改完畢或是要操作資料來源內的資料才會再建立連線DataSet物件包含一組DataTable物件和DataRelation對象DataTable物件及使用DataTable物件是DataSet的重要物件之一,表示記憶體中的一個關係數

控制項是指資料和方法的封裝;控制項可以有自己的屬性和方法,其中屬性是控制項資料的簡單存取者,方法則是控制項的一些簡單而可見的功能、控制項建立過程包括設計、開發、偵錯;建立控制項的最大意義在於封裝重複的工作,其次是可以擴充現有控制項的功能。
