这是我的代码
using System;
using System.Collections.Generic;
using Oracle.DataAccess.Client;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Insert
{
class Program
{
static void Main()
{
Console.WriteLine("Start....");
String connString = "User Id=******;Password=*********;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=***.**.**.***)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=****))); Connection Timeout=5";
Console.WriteLine("connString was created....");
try
{
Console.WriteLine("start using sentence....");
using (OracleConnection connection = new OracleConnection(connString))
{
Console.WriteLine("in using scope....before connection opens....");
connection.Open();
OracleCommand cmd = connection.CreateCommand();
Console.WriteLine(connection.ServerVersion);
Console.WriteLine("Myworld");
cmd.CommandText = String.Format("INSERT INTO PROCESS_TEST ( TEST ) VALUES ( {0} )", "1");
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT TEST FROM PROCESS_TEST";
OracleDataReader read = cmd.ExecuteReader();
while (read.Read())
{
Console.WriteLine(read.GetString(0));
}
connection.Close();
}
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
Console.Read();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它工作 如果我在我的visual studio 2013上运行代码.
这是行不通的 ,当我在它的运行exe 发布文件夹.
我稍后插入了try-catch代码,以了解发生了什么,但它也没有抛出任何错误,无论我等待我的exe多长时间发出错误.考虑到连接超时设置为5秒,这很奇怪......
它不会比这一步更进一步.使用管理员权限运行exe也不起作用.
让我再次告诉你,它在我的视觉工作室2013上非常好用
有什么问题呢?
更新
事实证明,我的代码可以使用.exe工作,除了随机需要3~10分钟才能完成工作,这也不是我想要的.
为什么打开连接需要这么长时间?当应用程序在像exe这样的独立进程下运行时,连接工作需要花费4到10分钟吗?
它是我的Web应用程序的运行数据库服务器,连接作业以前从未打扰过我.
只要连接打开,我的exe就会完成其余的工作(插入工作).