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 ...
随机推荐
- ok6410 android driver(1)
target system : Android (OK6410) host system : Debian Wheezy AMD64 1.Set up android system in ok6410 ...
- Set up the environment for driver compiling in Debian
1.check the kernel version $ uname -r --amd64 2.install the source code $ sudo apt-get install linux ...
- Manjaro解决 Node.JS Error: ENOSPC
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details ...
- PHP之string之ord()函数使用
ord (PHP 4, PHP 5, PHP 7) ord - Return ASCII value of character ord - 返回字符的 ASCII 码值 Description int ...
- Flume初始
一.Flume是什么 Flume是一个数据,日志收集的一个组件,可以用于对程序,nginx等日志的收集,而且非常简单,省时的做完收集的工作.Flume是一个分布式.可靠.和高可用的海量日志采集聚合和传 ...
- CentOS/Linux 解决 SSH 连接慢
现在连接linux服务器一般都是使用SSH远程连接的方式.最近新装了一台服务器,发现telnet时速度很快,ping时一切也正常,但SSH连接的时候却很慢.经过网上资料查询,大致是有以下几种原因: 1 ...
- Xml解析过程中遇到“” 1 字节的 UTF-8 序列的字节 1 无效“”问题---idea与eclipse同适用
转载自:http://blog.csdn.net/zhangzhikaixinya/article/details/7727938 今天在eclipse中编写pom.xml文件时,识别到错误:Inva ...
- docker上安装nginx服务
环境 1.开启一个容器,安装nginx,略过 2.假如第一步新启动没映射端口的话,重新把容器保存为镜像然后再重新运行一个新容器,不建议在一个正在运行的容器上做端口映射 docker run ...
- 关于css浮动框是否脱离文档流的分析
在了解浮动属性之前,首先我们先了解一下html中关于display属性的相关知识. display属性常用的有inline, block, inline-block. inline也就是内联的意思. ...
- IOS折线图二
上周把项目的折线图给做了下,今天想着把它完善完善,自己设置了不同的数据源来测试,哈哈,还真遇到问题了, 就是给图表设置折点数为0时,视图显示的还是原来的,由于数据为空,应该将其设置为空,所以想着怎么把 ...