首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

.net链接oracle数据库上面SQL语句的有关问题

2012-12-14 
.net链接oracle数据库下面SQL语句的问题insert into LIS.MZDX(ID)values(LIS.mzautoid.nextval)select LI

.net链接oracle数据库下面SQL语句的问题
insert into LIS.MZDX(ID)values(LIS.mzautoid.nextval);select LIS.mzautoid.currval ID from dual;

目的是插入一条记录,获取自增列ID值

在网上找的多语句方案都没有办法实现,尝试过用ODP.NET的Oracle.DataAccess.Client,和.net自带的System.Data.OracleClient都不行
[最优解释]
我的做法是在程序中根据";"分割开语句,一条条执行,无需写存储过程,避免改动数据库。
[其他解释]


--放在一起的话,你如果要返回值,需写sp去执行
using System;
using System.Data.SqlClient;

using System.Data.OracleClient;

public class Test
{
    /*
        建表及序列
        create table t(id int);
        create sequence t_seq;
     */
    public static void Main()
    {

        OracleConnection conn = null;
        OracleCommand cmd = null;
        int val = 0;

        const string sConn = "data source=orcl;user id=zhangjg;password=1;";
        try
        {
            conn = new OracleConnection(sConn);
            cmd = new OracleCommand("insert into t values(t_seq.nextval)", conn);
            conn.Open();
            cmd.ExecuteNonQuery();
            cmd = new OracleCommand("select t_seq.currval from dual", conn);
            val = Convert.ToInt32(cmd.ExecuteScalar());
        }
        catch (Exception err)
        {
            Console.Write(err.Message);
        }
        finally
        {
            conn.Close();
        }
        Console.WriteLine(val);
        Console.ReadKey();
    }
}

[其他解释]
insert into LIS.MZDX(ID)values(LIS.mzautoid.nextval)
select @@identity

[其他解释]
引用:
C# code

--放在一起的话,你如果要返回值,需写sp去执行
using System;
using System.Data.SqlClient;

using System.Data.OracleClient;

public class Test
{
    /*
        建表及序列
        create table t(id int);


        create……



多语句的话只能通过写存储过程实现吗?

热点排行