点击这里给我发消息 点击这里给我发消息

C# 更新数据库

添加时间:2013-12-7
    相关阅读: 数据库 SQL Oracle AI C#
 

7,更新数据库

本例中给出一个非常简单的示例,此示例仅使用了一个表,同时引入后面才会介绍的几个新对象。

在数据库上进行的操作(更新,插入,删除)可以用相同的模式完成。

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;              //注意
using System.Data.OracleClient; //Oracle数据库

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {

            OracleConnection thisConnection = new OracleConnection(@"Data Source=orcl;User ID=shibei;Password=nsic;Unicode=True");

            OracleDataAdapter thisAdapter = new OracleDataAdapter("select * from N_AIT", thisConnection);

            OracleCommandBuilder thisBuilder = new OracleCommandBuilder(thisAdapter);//CommandBuilder用来创建SQL指令,与Adapter相关联

            DataSet thisDataSet = new DataSet();

            thisAdapter.Fill(thisDataSet, "MY_N_AIT");//MY_N_AIT不是表名而是DataTable对象的名称

            Console.WriteLine("Name before change:{0}", thisDataSet.Tables["MY_N_AIT"].Rows[4]["NAME"]);

            thisDataSet.Tables["MY_N_AIT"].Rows[4]["NAME"] = "被我改了";//数据被修改

            thisAdapter.Update(thisDataSet, "MY_N_AIT");//SQL的指令时靠CommandBuilder来完成的,这要求建立Adapter的查询语句中的字段
                                                        //必须有主键,如果没有的话这样执行就抛出异常了。
           

            thisConnection.Close();//这个例子中没有明确打开连接,因为DataAdapter对象完成了这个工作,
                                   //数据授权对象会根据需要打开连接,在完成工作后关闭它。
                                   //DataAdapter对象不改变连接的状态,如果DataAdapter对象开始其工作前连接时打开的,
                                   //在DataAdapter对象完成其工作后,连接仍是打开的。( 不懂既然DataAdapter来处理为什么不改变连接的状态)
           
        }
    }
}

运行结果:

注意:利用OracleCommandBuilder产生SQL语句,但是表中必须要有主键,否则会抛出异常。采用直接执行SQL命令可以解决。

 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册