资源描述
查询oracle序列值
精品资料
查询oracle序列值
1、 在数据源增加引用:
System.Configuration
System.Data.OracleClient
2、 在相关表的对象类中增加using:
using System.Data.OracleClient;
using System.Configuration;
3、 用以下内容直接取值:
private Int32 getSeq()
{
int activityid = 0;
try
{
using (OracleConnection con = new OracleConnection())
{
string connectionStringName = this.DataWorkspace.DataSource1.Details.Name;
string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
string username = "";
string password = "";
string sid = "";
string host = "";
connectioninfo(ref connectionString, out host, out sid, out username, out password);
con.ConnectionString =string.Format(@"Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = 1521)))(CONNECT_DATA =(SID = {1})(SERVER = DEDICATED)));User Id={2};Password={3};",
host.Trim(), sid.Trim(), username.Trim(), password.Trim());
string seqSql = "select seq_pernt.nextval from dual";
using (OracleCommand command = new OracleCommand(seqSql, con))
{
con.Open();
using (OracleDataReader dr = command.ExecuteReader())
{
if (dr.Read())
{
activityid = dr.GetInt32(0);
}
}
}
}
}
catch (Exception e)
{
Console.WriteLine("数据库操作错误:"+e.Message);
}
return activityid;
}
private void connectioninfo(ref string coninfo, out string host, out string sid, out string username, out string password)
{
username = "";
password = "";
sid = "";
host = "";
string[] strs = coninfo.Split(';');
if (strs != null && strs.Length > 0)
{
foreach (string str in strs)
{
if (str.StartsWith("User Id"))
{
username = str.Substring(8);
}
else if (str.StartsWith("Password"))
{
password = str.Substring(9);
}
else if (str.StartsWith("Server"))
{
host = str.Substring(7);
}
else if (str.StartsWith("Sid"))
{
sid = str.Substring(4);
}
}
}
}
仅供学习与交流,如有侵权请联系网站删除 谢谢3
展开阅读全文