使用DataSet與DataAdapter對數據庫進行操作
1.定義連接字符串
var source = "server=(local); integrated security=SSPI; database=test";
var conn = new SqlConnection(source);
2.構架Tables
Tables的構架是由Columns支撐的,即定義一張表需要說明清楚這張表包含有哪些列,這些列的屬性是什麼?例如定義一張Users表,則需要說明Users表包含的列(Id,Name,Age),以及列的屬性,如Id為主鍵,是int型,不能為空等等。
Tables對象由DataTable類聲明;
Columns對象由DataColumn聲明;
DataTable.Columns中的Add()方法提供了向Datatable添加列的方法;
DataTable Users = new DataTable("Users");
Users.Columns.Add(new DataColumn("Id", typeof(int)));
Users.Columns.Add(new DataColumn("Name", typeof(string)));
Users.Columns.Add(new DataColumn("Age", typeof(int)));
Users.PrimaryKey = new DataColumn[] {Users.Columns["Id"]};
第五行聲明主鍵為Id列;
3.構建DataSet
DataSet ds = new DataSet("Users");
ds.Tables.Add(Users);
4.填充DataSet對象
SqlDataAdapter da = new SqlDataAdapter(“SELECT * FROM _Users”, conn);
da.Fill(ds, "Users");
聲明名為“UserSet”的DataSet對象ds;
使用SqlDataAdapter(數據適配器)讀取數據;
使用SqlDataAdapter的Fill()方法將數據填充至ds中的Table中,並將Table命名為“Users”;
現在只需要對DataSet進行操作然後更新到數據庫便可完成數據操作。
5.將DataSet更新到數據庫
SqlCommandBuilder thisBuilder = new SqlCommandBuilder(da);
da.Update(ds, "Users");
二、數據操作
1.INSERT
Users.Rows.Add(new object[] { user.Id, user.Name, user.UserName, user.Password, user.Score });
2.UPDATE
foreach (DataRow row in Users.Rows)
{
if ("Amily" == (string)row["Name"])
{
row["Age"] = ;
}
}
3.DELETE
foreach (DataRow row in Users.Rows)
{
if (“Bob” == (string)row[])
{
row.Delete();
}
}
使用DataSet與DataAdapter對數據庫進行操作的更多相关文章
- 在Android中afinal框架下實現sqlite數據庫版本升級的辦法
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 這個方法在實現時需要重寫. pub ...
- C#數據庫
一.連接數據庫 1.定義連接數據庫的字符串 string source = "server=(local); integrated security=SSPI; database=test& ...
- 一次 C# 查詢數據庫 算法優化的案例
最近有次在修改某段程式時,發現一段程式算法看起來簡單. 但背後因為多次查詢數據庫,導致效能問題. 這段程式主要是利用 EPPLUS 讀取 Excel 資料,檢查資料是否已存在數據庫中,若有就將已存在的 ...
- 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)
ORACLE數據庫轉MySQL數據庫遇到的坑 總結 最近在做Oracle轉mysql的工程,遇到的坑是真的多,尤其是存儲過程,以前都沒接觸過類似的知識,最近也差不多轉完了就總結一下.希望能幫到一些人( ...
- Scrapy——將數據保存到MySQL數據庫
Scrapy--將數據保存到MySQL數據庫 1. 在MySQL中創建數據庫表job_inf: 1 Create table job_inf( 2 id int(11) not null auto_i ...
- python連接mysql數據庫
第一步,安裝mysql數據庫. 這裏我安裝的是mariadb數據庫,版本5.5,並且配置好了字符集.此處不詳細敘述,相信大家沒有問題. 第二步,安裝mysql驅動. 首先說明一下有兩個主要的驅動: m ...
- PB C/S轉B/S ODBC方式連接數據庫
PB C/S轉B/S ODBC方式連接數據庫,DSN需要建為系統而不是使用者DSN,否則連不上數據庫.
- MVC+Ninject+三层架构+代码生成 -- 总结(一、數據庫)
一.數據表 是參照 別人的庫建表的 ,主鍵都是用int 自增,若是跨數據庫的話,建議使用GUID為主鍵.
- C#在sql中使用變量訪問Oracle數據庫
1.首先創建一個測試數據表 CREATE TABLE people ( SNO BYTE), SNAME BYTE), SSEX BYTE), SAGE number, SDEPT BYTE), BT ...
随机推荐
- python从入门到实践-7章用户输入和while循环
#!/user/bin/env python# -*- coding:utf-8 -*- # input() 可以让程序暂停工作# int(input('please input something: ...
- web测试实践——day01
一.任务进展情况 主要是找寻网站的bug,分析bug的严重程度.同时找了本专业的同学进行博客园系统的使用. 二.存在的问题 由于上线的网站做的比较完善,导致找寻bug比较困难. 三.解决方法 对此我们 ...
- VBS列出windows更新列表
Set objSession = CreateObject("Microsoft.Update.Session") Set objSearcher = objSession.Cre ...
- 通用类 对象Excel互转
public class ExcelHelper { public void Demo(string filePath) { if (File.Exists(filePath)) File.Delet ...
- 对scanf和printf的研究!!
在做项目的时候,突然很纠结要不要清理.所以赶紧写一篇博客记一下!! 1. scanf函数 在代码中,如果碰到了两个挨着输入的情况,就会出现问题!! 输入一个字符 r 就会出现一下情况!! 第2句sca ...
- python-监控日志练习
存在一个access.log 日志, 格式如下, 每行 以ip 地址开始: 1.需求: #1.如果同一个ip地址60s之内访问超过200次,那么就把ip加入黑名单#需求分析: #1.60秒读一次文件 ...
- [Swift]LeetCode21. 合并两个有序链表 | Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ...
- [Swift]LeetCode249.群组偏移字符串 $ Group Shifted Strings
Given a string, we can "shift" each of its letter to its successive letter, for example: & ...
- linux入门--Linux桌面环境(桌面系统)大比拼[附带优缺点]
早期的 Linux 系统都是不带界面的,只能通过命令来管理,比如运行程序.编辑文档.删除文件等.所以,要想熟练使用 Linux,就必须记忆很多命令. 后来随着 Windows 的普及,计算机界面变得越 ...
- 使用jquery实现返回顶部按钮
实现返回顶部效果,首先需要监听页面的scroll事件,其次才是获取到页面当前的滚动高度 $(window).scrollTop(); 具体代码如下: jquery获取页面元素的一些边界值(宽,高,滚动 ...