海口网站制作北京网站托管的公司哪家好

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

海口网站制作,北京网站托管的公司哪家好,广州做网站哪个好,建设小说网站费用目录 一、DataAdapter对象概述 二、Fill()方法填充数据集DataSet 1.举例 2.源码 3.生成效果
三、Update()方法 1.Update()方法更新数据源 2.设置数据库主键 3.源码 4.生成效果 一、DataAdapter对象概述 DataAdapter对象是一个数据适配器对象#xff0c;是DataSet与…目录 一、DataAdapter对象概述 二、Fill()方法填充数据集DataSet 1.举例 2.源码 3.生成效果  三、Update()方法 1.Update()方法更新数据源 2.设置数据库主键 3.源码 4.生成效果  一、DataAdapter对象概述 DataAdapter对象是一个数据适配器对象是DataSet与数据源之间的桥梁。DataAdapter对象提供了4个属性用于实现与数据源之间的互通。 ☑ SelectCommand属性向数据库发送查询SQL语句。 ☑ DeleteCommand属性向数据库发送删除SQL语句。 ☑ InsertCommand属性向数据库发送插入SQL语句。 ☑ UpdateCommand属性向数据库发送更新SQL语句。 在对数据库进行操作时只要将这4个属性设置成相应的SQL语句即可。 DataAdapter对象中还有2个主要的方法Fill()方法和Update()方法。 二、Fill()方法填充数据集DataSet Fill()方法用数据填充DataSet。 语法如下 public int Fill (DataSet dataSet,string srcTable) ☑ dataSet要用记录和架构如果必要填充的DataSet。 ☑ srcTable用于表映射的源表的名称。 ☑ 返回值已在DataSet中成功添加或刷新的行数这不包括受不返回行的语句影响的行。  通过DataAdapter对象的Fill()方法填充DataSet数据集Fill()方法使用Select语句从数据源中检索数据。与Select命令关联的Connection对象必须有效但不需要将其打开。 1.举例 创建一个SqlDataAdapter对象使用该对象的Fill()方法填充DataSet数据集最后设置DataGridView控件的数据源显示查询的数据。使用DataAdapter对象的Fill()方法从数据源中提取数据并填充到DataSet时就会用到SelectCommand属性中设置的命令对象。 2.源码 //Form1.cs //DataAdapter对象的Fill()方法填充DataSet数据集 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace _7 {public partial class Form1 : Form{public Form1(){InitializeComponent();}/// summary/// 初始化Form1/// /summaryprivate void Form1_Load(object sender, EventArgs e){button1.Text 加载数据;button1.Size new System.Drawing.Size(75, 23);}/// summary/// 实例化SqlConnection变量conn/// 创建一个SqlCommand对象并通过select方法查询数据库tb_command/// 创建一个SqlDataAdapter对象/// 设置SqlDataAdapter对象的SelectCommand属性为cmd与数据库SQL建立关联/// 创建一个DataSet对象/// 使用SqlDataAdapter对象的Fill()方法填充DataSet数据集/// 设置dataGridView1控件的数据源/// /summaryprivate void Button1_Click(object sender, EventArgs e){SqlConnection conn new SqlConnection(ServerDESKTOP-QFENBNJ\SQL_WEN;integrated securitySSPI;Initial Catalogdb_CSharp);//SqlConnection conn new SqlConnection(ServerDESKTOP-GFMO83R;integrated securitySSPI;Initial Catalogdb_CSharp);SqlCommand cmd new SqlCommand(select * from tb_command, conn);SqlDataAdapter sda new SqlDataAdapter{SelectCommand cmd};DataSet ds new DataSet();sda.Fill(ds, wen); //中的字符任意不得为空dataGridView1.DataSource ds.Tables[0]; //[]中的序号代表数据表tb_command中表的索引号表0、表1等}} }3.生成效果  Form1.cs[设计] 生成效果 SQL数据表tb_command 三、Update()方法 1.Update()方法更新数据源 使用DataAdapter对象的Update()方法可以将DataSet中修改过的数据及时地更新到数据库中。 Update()方法更新数据库时DataAdapter将调用DeleteCommand、InsertCommand以及UpdateCommand属性。 语法如下 ☑ dataTable用于更新数据源的DataTable。 ☑ 返回值DataSet中成功更新的行数。 在调用Update()方法之前要实例化一个CommandBuilder类这里为SqlCommandBuilder类该类可以自动生成单表命令用于将对DataSet所做的更改与关联的SQL Server数据库的更改相协调具体使用时它能自动根据DataAdapter的SelectCommand的SQL语句判断其他的InsertCommand、UpdateCommand和DeleteCommand这样就不用设置DataAdapter的InsertCommand、UpdateCommand和DeleteCommand属性而是直接使用DataAdapter的Update()方法来更新DataSet、DataTable或DataRow即可。 2.设置数据库主键 使用Update()方法更新数据时要求更新的数据表必须要主键否则将会产生异常信息无法执行更新操作。设置主键指的是设置数据库的主键。可以在Form1.cs通过编程方法设置主键也可以如本例在SSMS数据库管理软件里设置主键。 打开SSMS→展开要访问的SQL数据表tb_command→文件夹“列”右键→新建列→在右侧列表中选择编号→右键→设置主键→存储→鼠标选中tb_command→右键→刷新→展开列展开键→观察设置主键后的变化编号左侧出现钥匙标志代表主键设置成功。  3.源码 //Form1.cs //DataAdapter对象的Update()方法可以将DataSet中修改过的数据及时地更新到数据库中 using System; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Windows.Forms;namespace _8 {public partial class Form1 : Form{//定义全局变量public SqlConnection conn;public DataSet ds;public SqlDataAdapter sda;public SqlCommandBuilder cmdbuider;public Form1(){InitializeComponent();}/// summary/// 初始化Form1/// 实例化SqlConnection变量conn/// 创建一个SqlCommand对象/// 创建一个SqlDataAdapter对象/// 设置SqlDataAdapter对象的SelectCommand属性为cmd/// 创建一个DataSet对象/// 使用SqlDataAdapter对象的Fill()方法填充DataSet数据集/// 设置dataGridView1控件的数据源/// 不得增减行不得改变行列大小只读开不包含行标题列编辑标志不可见/// /summaryprivate void Form1_Load(object sender, EventArgs e){button1.Text 修改;label1.Text 编号;label2.Text 姓名;label3.Text 性别;label4.Text 年龄;label5.Text 奖金;textBox1.Size new System.Drawing.Size(40, 21);textBox2.Size new System.Drawing.Size(50, 21);textBox3.Size new System.Drawing.Size(40, 21);textBox4.Size new System.Drawing.Size(40, 21);textBox5.Size new System.Drawing.Size(40, 21);button1.Size new Size(60,23);textBox2.Focus(); //可设置可不设置鼠标焦点textBox1.Enabled false;dataGridView1.AllowUserToAddRows false;dataGridView1.AllowUserToDeleteRows false;dataGridView1.AllowUserToResizeColumns false;dataGridView1.AllowUserToResizeRows false;dataGridView1.ReadOnly true;dataGridView1.RowHeadersVisible false;dataGridView1.ShowEditingIcon false;dataGridView1.SelectionMode DataGridViewSelectionMode.FullRowSelect; //选择其他模式比如cell则不能激活CellClick事件//conn new SqlConnection(ServerDESKTOP-QFENBNJ\SQL_WEN;integrated securitySSPI;Initial Catalogdb_CSharp);conn new SqlConnection(ServerDESKTOP-GFMO83R;integrated securitySSPI;Initial Catalogdb_CSharp);SqlCommand cmd new SqlCommand(select * from tb_command, conn);sda new SqlDataAdapter //设置SqlDataAdapter对象的SelectCommand属性为cmd{SelectCommand cmd};ds new DataSet(); //实例化DataSet sda.Fill(ds, cs); //使用SqlDataAdapter对象的Fill()方法填充DataSet,中的字符任意不得为空dataGridView1.DataSource ds.Tables[0]; //设置dataGridView1控件的数据源,[]中的序号代表数据表tb_command中列表[0]}private void Button1_Click(object sender, EventArgs e){DataTable dt ds.Tables[cs]; //创建一个DataTablesda.FillSchema(dt, SchemaType.Mapped); //把表结构加载到tb_command表中DataRow dr dt.Rows.Find(textBox1.Text); //创建一个DataRow,设置DataRow中的值if (dr ! null) //必须非null判断否则System.NullReferenceException: 未将对象引用设置到对象的实例{dr[1] textBox2.Text.Trim(); //[]中数字为表的列号可以用列名称比如姓名dr[2] textBox3.Text.Trim(); //性别dr[3] textBox4.Text.Trim(); //年龄dr[4] textBox5.Text.Trim(); //奖金//dr[姓名] textBox2.Text.Trim(); //等效语句//dr[性别] textBox3.Text.Trim();//dr[年龄] textBox4.Text.Trim();//dr[奖金] textBox5.Text.Trim();}cmdbuider new SqlCommandBuilder(sda); //虽然VS提示不需要但不可或缺sda.Update(dt); //调用其Update()方法将DataTable更新到数据库中}/// summary/// 在dataGridView1控件的CellClick事件中实现单击某条数据显示详细信息/// /summary private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e){dataGridView1.CurrentCell dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];dataGridView1.EditMode DataGridViewEditMode.EditProgrammatically;dataGridView1.BeginEdit(true);if (e.RowIndex 0 e.RowIndex dataGridView1.Rows.Count){textBox1.Text dataGridView1.SelectedCells[0].Value.ToString();textBox2.Text dataGridView1.SelectedCells[1].Value.ToString();textBox3.Text dataGridView1.SelectedCells[2].Value.ToString();textBox4.Text dataGridView1.SelectedCells[3].Value.ToString();textBox5.Text dataGridView1.SelectedCells[4].Value.ToString();} }} } 4.生成效果  Form1.cs[设计] 生成后默认效果 修改第6行年龄18奖金555 SSMS更新数据库tb_command