当前位置: 首页 > news >正文

SqlDataAdapter的几种常用方法

SqlDataAdapter的几种常用方法。主要代码例如下所示:

SelectCommand、InsertCommand、DeleteCommand、UpdateCommand 和 其它 属性,使数据的加载和更新更加方便。  DataSet 增加/更新/插入到数据库


public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommand cmd;
    SqlParameter parm;

    // 创建选择命令.
    cmd = new SqlCommand("SELECT * FROM Customers WHERE Country = @Country AND City = @City", conn);
    cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
    cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);

    cmd.SelectCommand.Parameters["@Country"].Value = Country;
    cmd.SelectCommand.Parameters["@City"].Value = City;

    da.SelectCommand = cmd;

    // 创建插入命令.
    cmd = new SqlCommand("INSERT INTO Customers (CustomerID, CompanyName) VALUES (@CustomerID, @CompanyName)", conn);
    cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
    cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");

    cmd.SelectCommand.Parameters["@CustomerID"].Value = CustomerID;
    cmd.SelectCommand.Parameters["@CompanyName"].Value = CompanyName;

    da.InsertCommand = cmd;

    // 创建删除命令.
    cmd = new SqlCommand("DELETE FROM Customers WHERE CustomerID = @CustomerID", conn);
    parm = cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
    parm.SourceVersion = DataRowVersion.Original;

    cmd.SelectCommand.Parameters["@CustomerID"].Value = CustomerID;

    da.DeleteCommand = cmd;

    // 创建更新命令.
    cmd = new SqlCommand("UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName WHERE CustomerID = @oldCustomerID", conn);
  
    cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
    cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");

    cmd.SelectCommand.Parameters["@CustomerID"].Value = CustomerID;
    cmd.SelectCommand.Parameters["@CompanyName"].Value = CompanyName;

    parm = cmd.Parameters.Add("@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
      
    parm.SourceVersion = DataRowVersion.Original;

    da.UpdateCommand = cmd;

    return da;
}


 

// 其它.
private void
update()
{
    SqlConnection
conn = new SqlConnection(str);
    SqlDataAdapter da = new SqlDataAdapter("SELECT order_id, contract FROM linhai", conn);
    DataSet ds = new DataSet();
    
da.Fill(ds, "linhai");

    da.UpdateCommand = new SqlCommand("UPDATE linhai SET contract = @contract WHERE order_id = @order_id" , conn);

    da.UpdateCommand.Parameters.Add("@contract", SqlDbType.NVarChar, 15, "contract");
    da.UpdateCommand.Parameters.Add("@order_id", SqlDbType.NVarChar, 15, "order_id");

    ds.Tables["linhai"].Rows[0]["contract"] = "PPP";
    da.Update(ds.Tables[0]);
}

 

public DataSet CreateCmdsAndUpdate(DataSet myDataSet,string connstr,string sql,string myTableName)
{
    OleDbConnection
conn = new OleDbConnection(connstr);
    OleDbDataAdapter da = new OleDbDataAdapter();
    da.SelectCommand = new OleDbCommand(sql, conn);
    
    // 自动生成用于协调 DataSet 的更改与关联数据库的单表命令
    OleDbCommandBuilder ds = new OleDbCommandBuilder(da);
    conn.Open();

    DataSet ds = new DataSet();
    da.Fill(ds);
    da.Update(ds);

    conn.Close();
    return ds;
}

 

//DataSet 更新数据库

public void Update()
{
    string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+@"f:\a.mdb";
    OleDbConnection conn = new OleDbConnection(str);
    OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM 工资模板",conn);
    OleDbCommandBuilder cb=new OleDbCommandBuilder(da);
    DataSet ds=new DataSet();

    da.Fill(ds);
    //DataTable dt=ds.Tables[0];
    //dt.PrimaryKey=new DataColumn[]{dt.Columns["编号"]};//设置主键
    //DataRow dr=dt.Rows.Find("1");//根据参数查找到需要修改的行
    //dr["类型"]="说明项A";//对需要修改的记录赋新值

    da.Update(Add(ds).Tables[0]);//用DataAdapter的Update()方法进行数据库的更新
}
public DataSet Add(DataSet ds)
{
    //增加
    DataRow dr = ds.Tables[0].NewRow();

    dr["编号"] = "50";
    dr["名称"] = "mmnnvbc";
    dr["标识"] = "sdasdasd";
    dr["类型"] = "工要";
    dr["长度"] = "20";
    dr["小数位数"] = "0";
    dr["是否唯一"] = "true";
    dr["银行项目"] = "false";

     ds.Tables[0].Rows.Add(dr);
    /*
    //记录删除
    ds.Tables[0].Rows[2].Delete();
    //更新
    DataRow dr = ds.Tables[0].Rows[1];
    dr.BeginEdit();
    dr["CustomerID"] = "********";
    dr.EndEdit();
    */

    return ds;
}

 

转载于:https://www.cnblogs.com/qinfei/archive/2005/11/03/268209.html

相关文章:

  • 推荐好书《JOEL说软件》
  • WorkFlow 实施记录(1)
  • 客户端效果总结
  • Movie
  • C#.Net一百零一夜(第一夜)
  • 华为成功破解磁悬浮列车WCDMA无缝覆盖难题
  • 数据结构-翻牌游戏
  • TreeView初始化,返回节点值的方法(转)--收藏
  • ASP.NET中的ViewState
  • 通过XMLHTTP发送请求
  • 由一段游戏层代码想到的
  • java面试题及答案
  • 命名成为了我写程序加大工作量事情之一
  • [转载]狂人Wolfram及其新科学
  • 使用线程,防止当前程序被阻塞
  • angular2开源库收集
  • ES6系统学习----从Apollo Client看解构赋值
  • Markdown 语法简单说明
  • Object.assign方法不能实现深复制
  • Redux系列x:源码分析
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 基于HAProxy的高性能缓存服务器nuster
  • 解决iview多表头动态更改列元素发生的错误
  • 解析 Webpack中import、require、按需加载的执行过程
  • 开源地图数据可视化库——mapnik
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前嗅ForeSpider中数据浏览界面介绍
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一文看透浏览器架构
  • 用Visual Studio开发以太坊智能合约
  • 《天龙八部3D》Unity技术方案揭秘
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 大数据全解:定义、价值及挑战
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • !!java web学习笔记(一到五)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (09)Hive——CTE 公共表达式
  • (LeetCode) T14. Longest Common Prefix
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (独孤九剑)--文件系统
  • (二)换源+apt-get基础配置+搜狗拼音
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (未解决)macOS matplotlib 中文是方框
  • (一)Neo4j下载安装以及初次使用
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转载)Linux网络编程入门
  • ***检测工具之RKHunter AIDE
  • .axf 转化 .bin文件 的方法
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 中创建支持集合初始化器的类型
  • .net(C#)中String.Format如何使用
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件