sqldataAdapter/dataset/datatable的使用
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//把cities表中的数据加载到窗体的datagridview
string connString = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
using(SqlConnection sqlconn=new SqlConnection(connString))
{
string selectstring = @"select id, cityid, city, provinceid from cities;select * from provinces"; #region 单张表
//创建一个适配器类
//using(SqlDataAdapter sqladapter=new SqlDataAdapter(selectstring,sqlconn))
//{ // //此时adapter已经连接到了一个表
// DataTable dataTable = new DataTable();
// //将关联表的数据填充到dataTable
// //sqladapter会自动打开数据库连接,并执行sql脚本
// sqladapter.Fill(dataTable);
// //this.dataGridView1.DataSource = dataTable;
// List<cities> mycitylist = new List<cities>(); // //类定义时字段{get;set;}不写显示不出来
// foreach(DataRow datarow in dataTable.Rows)
// {
// Console.WriteLine(datarow["id"]+" "+datarow[1]);
// //把每一行数据封装成city类
// mycitylist.Add(new cities(){
// id=int.Parse(datarow["id"].ToString()),
// cityid=int.Parse(datarow["cityid"].ToString()),
// city=datarow["city"].ToString(),
// provinceid = int.Parse(datarow["provinceid"].ToString())
// });
// }
// //把datatable的数据转储成List<city>类型
// this.dataGridView1.DataSource = mycitylist;
#endregion #region 多张表
using(SqlDataAdapter sqlDataAdapter =new SqlDataAdapter(selectstring,sqlconn))
{
DataSet dataset=new DataSet();
sqlDataAdapter.Fill(dataset);
this.dataGridView1.DataSource = dataset.Tables[];
}
#endregion } } }
增删改查
private void button1_Click(object sender, EventArgs e)
{
//把dataGridView修改的数据保存到数据库中
string connString = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
string selectstring = @"select id, cityid, city, provinceid from cities;select * from provinces";
using(SqlDataAdapter dataAdapter=new SqlDataAdapter(selectstring,connString))
{
//拿到修改完了之后的datatable
DataTable dt = this.dataGridView1.DataSource as DataTable;
//修改后dt的变化映射到数据库中对应表格的变化
//帮助dataAdapter生成相关的CRUD 的SqlCommand
using (SqlCommandBuilder sqlcomBulider = new SqlCommandBuilder(dataAdapter))
{
dataAdapter.Update(dt);
}
}
MessageBox.Show("保存成功");
手动增删改查
public static SqlDataAdapter CreateCustomerAdapter(
SqlConnection connection)
{
SqlDataAdapter adapter = new SqlDataAdapter(); // Create the SelectCommand.
SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", connection); // Add the parameters for the SelectCommand.
command.Parameters.Add("@Country", SqlDbType.NVarChar, );
command.Parameters.Add("@City", SqlDbType.NVarChar, ); adapter.SelectCommand = command; // Create the InsertCommand.
command = new SqlCommand(
"INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", connection); // Add the parameters for the InsertCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, , "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, , "CompanyName"); adapter.InsertCommand = command; // Create the UpdateCommand.
command = new SqlCommand(
"UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", connection); // Add the parameters for the UpdateCommand.
command.Parameters.Add("@CustomerID", SqlDbType.NChar, , "CustomerID");
command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, , "CompanyName");
SqlParameter parameter = command.Parameters.Add(
"@oldCustomerID", SqlDbType.NChar, , "CustomerID");
parameter.SourceVersion = DataRowVersion.Original; adapter.UpdateCommand = command; // Create the DeleteCommand.
command = new SqlCommand(
"DELETE FROM Customers WHERE CustomerID = @CustomerID", connection); // Add the parameters for the DeleteCommand.
parameter = command.Parameters.Add(
"@CustomerID", SqlDbType.NChar, , "CustomerID");
parameter.SourceVersion = DataRowVersion.Original; adapter.DeleteCommand = command; return adapter;
}
sqldataAdapter/dataset/datatable的使用的更多相关文章
- C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...
- ADO.NET基础知识学习(SQLCOnnection&SQLCommand&SQLDataReader&SQLDataAdapter&DataSet)
通过ADO.NET技术,我们可以高效的完成客户端同数据库之间的数据访问操作,便于我们在客户端程序简便高效的访问以及获取数据库中的有用数据,同时也可以对数据库中的数据进行更新,即可以完成客户端与数据库之 ...
- 手写DataSet,DataTable
一:DataSet DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable();//创建一个DataTalbe dt.C ...
- DataSet DataTable操作
DataSet ds = new DataSet(); DataTable dt = new DataTable("OrderList"); ...
- [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)
点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...
- DataSet,DataTable,DataColumn,DataRow的常用操作
DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...
- 【C#-批量插入数据到数据库】DataTable数据批量插入数据的库三种方法:SqlCommand.EcecuteNonQurery(),SqlDataAdapter.Update(DataTable) ,SqlBulkCopy.WriteToServer(Datatable)
第一种方法:使用SqlCommand.EcecuteNonQurery() 效率最慢 第二种方法:使用SqlDataAdapter.Update(DataTable) 效率次之 第三种方法:使用 ...
- DataSet,DataTable排序(转载)
DataSet,DataTable排序 关于对已经绑定的DataSet的排序的问题: DataSet ds=new DataSet();DataView dv=new DataView();dv. ...
- 使用DataSet Datatable 更新数据库的三种方式
1:自动生成命令的条件 CommandBuilder 方法a)动态指定 SelectCommand 属性b)利用 CommandBuilder 对象自动生成 DataAdapter 的 DeleteC ...
随机推荐
- Mac下安装Iterm2终端工具
一般Iterm2是结合oh-my-zsh一起使用,但是如果不喜欢zsh也可以单独使用.Iterm2有个亮点就是可以通过快捷键快速启动. 安装步骤: 1.下载: http://www.iterm2.co ...
- 高性能的数据压缩库libzling-20140324
libzling(https://github.com/richox/libzling,求观看[watch],求星[star],求叉[fork])是一款高性能的数据压缩库,在压缩时间和压缩率上都超过了 ...
- MYSQL 本地无ROOT权限 忘记密码
打开CMD窗口 net stop mysql //停止MYSQL mysqld -nt --skip-grant-tables //跳过密码检测. mysqld.exe在Bin目录下 然后另外新打 ...
- 《LeetBook》leetcode题解(6): ZigZag Conversion[E]
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- casperjs问题收集
1 无妨访问某些页面可能是ssl选项没有使用 casperjs --ignore-ssl-errors=true --ssl-protocol=any 你的测试文件
- PHP之string之explode()函数使用
explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...
- PgAdmin4连接数据库报错:Unable to connect to server: ERROR: unrecognized configuration parameter "bytea_output"
原因: PgAdmin 4不再支持PostgreSQL 9.0 和更早的版本 我的版本是8.2.15 template1=# select version(); version ----------- ...
- NetSugar.Cap与CAP功能比对
前言 首先非常感谢开源社区,在各位作者无私得奉献下,我才有幸接触CAP.在拜读源码和理解设计原理过程中,发现CAP的源码是一个非常值得我们学习的代码.本人代码的基本框架采用简单的DDD,在练习Demo ...
- 数据库连接池之C3P0
一.C3P0的使用步骤 1:导入相关的依赖jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar 2:代码实现 A:硬编码的实现方式 package ...
- uva 725 DIVISION (暴力枚举)
我的56MS #include <cstdio> #include <iostream> #include <string> #include <cstrin ...