博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InsertCommand属性---把数据集的新行保存到数据源中
阅读量:6069 次
发布时间:2019-06-20

本文共 3358 字,大约阅读时间需要 11 分钟。

实例:

View Code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace PersistAdds{    class Program    {        static void Main(string[] args)        {            string connString = @"server=.;            integrated security=true;            database =northwind";            string qry = @"select * from employees where country='UK'";            string ins = @"insert into employees(firstname,lastname,titleofcourtesy,city,country)            values(@firstname,@lastname,@titleofcourtesy,@city,@country)";            SqlConnection conn = new SqlConnection(connString);            conn.Open();            Console.WriteLine(conn.State);            try            {                SqlDataAdapter da = new SqlDataAdapter();                da.SelectCommand = new SqlCommand(qry, conn);                DataSet ds = new DataSet();                da.Fill(ds, "employees");                DataTable dt = ds.Tables["employees"];                DataRow newRow = dt.NewRow();                newRow["firstname"] = "tan";                newRow["lastname"] = "ding";                newRow["titleofcourtesy"] = "Sir";                newRow["city"] = "luoding";                newRow["country"] = "UK";                dt.Rows.Add(newRow);                //display rows                foreach (DataRow row in dt.Rows)                {                    Console.WriteLine("{0} {1} {2}", row["firstname"].ToString().PadRight(15), row["lastname"].ToString().PadLeft(25), row["city"]);                }                SqlCommand cmd = new SqlCommand(ins, conn);                cmd.Parameters.Add("@firstname", SqlDbType.NVarChar, 10, "firstname");                cmd.Parameters.Add("@lastname", SqlDbType.NVarChar, 20, "lastname");                cmd.Parameters.Add("@titleofcourtesy", SqlDbType.NVarChar, 25, "titleofcourtesy");                cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15, "city");                cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15, "country");                da.InsertCommand = cmd;                da.Update(ds, "employees");            }            catch (SqlException e)            {                Console.WriteLine("Error :" + e.ToString());            }            finally            {                conn.Close();            }            Console.ReadKey();        }    }}

添加一个INSERT语句,并把原查询字符串变量的名称sql改为ins,以便与这个语句区分开来。

            string ins = @"insert into employees(firstname,lastname,titleofcourtesy,city,country)

            values(@firstname,@lastname,@titleofcourtesy,@city,@country)";

在try块中,更新注释被一些代码替换了。使用insertSQL变量ins

 SqlCommand cmd = new SqlCommand(ins, conn);

接着配置命令参数。提供了值的5列分别映射为指定的命令参数。没有提供主键值,因为它由SQL Server生成,其他列可置定,所以不必为它们提供值。注意,所有的值都是当前值,所以不必指定sourceVersion属性。.

      cmd.Parameters.Add("@firstname", SqlDbType.NVarChar, 10, "firstname");

                cmd.Parameters.Add("@lastname", SqlDbType.NVarChar, 20, "lastname");
                cmd.Parameters.Add("@titleofcourtesy", SqlDbType.NVarChar, 25, "titleofcourtesy");
                cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15, "city");
                cmd.Parameters.Add("@country", SqlDbType.NVarChar, 15, "country");

最后,用命令设置数据适配器的InsertCommand属性,在Employees表中插入新行,该命令是在调用Update方法时数据适配器执行的SQL。接着,在数据适配器上调用Update方法,把变化保存到数据库中。这里只添加了一行,但因为SQL是参数化的,所以数据适配器会在employees数据表中查找所有新行,并把对它们的所有插入操作都提交给数据库。

                da.InsertCommand = cmd;

                da.Update(ds, "employees");

 

转载地址:http://nkfgx.baihongyu.com/

你可能感兴趣的文章
玩转树莓派 - 添加定时任务
查看>>
iphone-common-codes-ccteam源代码 CCLanguage.h
查看>>
基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序
查看>>
团队工作第四次推进之——软件设计规格说明书
查看>>
RepositoryBase文件解析
查看>>
cocos2d-x代码阅读笔记 - 入口
查看>>
BPEL_Oracle BPEL新一代工作流介绍(概念)
查看>>
ADF_ADF Faces系列1_使用JSF开发基于Ajax的用户界面:ADF Faces 富客户端组件简介(Part1)...
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
ios9 -3dtouch 手势添加到app上
查看>>
浅谈树分治
查看>>
GPU通用计算调研报告
查看>>
Silex - 基于Symfony2组件的微型框架
查看>>
通过SQL语句查看数据库表的列数
查看>>
MongoDB 基础
查看>>
H5 浏览器开发文档
查看>>
jQuery中Ajax事件beforesend及各参数含义
查看>>
ubuntu 18.04 install gitlab-ce
查看>>
OkHttp使用教程
查看>>