Tag: 数据库连接

ExecuteReader(CommandBehavior.CloseConnection)会一直关闭连接吗?

编写这样的辅助方法是否安全? 它会一直关闭连接吗? 我想知道如果一切顺利,它会,但是即使它抛出,ExecuteReader也会关闭连接吗? public static IEnumerable ExecuteSelect(string commandText, DbConnection conn) { using (DbCommand cmd = conn.CreateCommand()) { cmd.CommandText = commandText; conn.Open(); using (DbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { foreach (DbDataRecord record in reader) { yield return record; } } } }

列表表导致“在数据库中拒绝CREATE TABLE权限”ASP.NET – MVC4

我正在使用ASP.NET MVC 4 – c#连接到实时数据库,并列出结果,但是当我去查看页面时它返回以下错误: CREATE TABLE permission denied in database ‘DatabaseName’. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: CREATE TABLE permission denied in database ‘DatabaseName’. Source Error: […]

.net的替代Oracle驱动程序

我必须在C#中开发一个工具,从Oracle DB中检索一些数据。 由于我们的IT支持在安装Oracle客户端时遇到一些问题,我希望能够在没有安装客户端的情况下连接到数据库。 我们的想法是与应用程序一起安装(并可能注册)一个额外的库。 Oracle客户端存在哪些替代方案,它们的优缺点是什么? 这适用于一个小应用程序(1个表单,2个或3个查询,结果显示在DataGrid中,可能不超过10-20个数据集),但我也对可伸缩性问题感兴趣,因为我们也可能会离开Oracle客户拥有更大的未来项目。 当然,免费软件解决方案会很好,但我们不仅限于此。

如何从.Net Core连接到Oracle数据库连接

在.netCore库中,我想连接到Oracle数据库。 我有什么方法可以做到吗? 我已经在另一个SOpost上尝试了这些建议,但它不起作用,也许从那以后就删除了? 正如你在我的project.json中看到的,我正在尝试使用“net461”。 我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client。 我也知道Oracle尚未购买.netCore连接器。 但即使在那里,我也无法让它工作,它很难将System.Data包含在内,每当我尝试添加它时都会出错。 我的project.json看起来像这样: { “version”: “1.0.0-*”, “dependencies”: { “NETStandard.Library”: “1.6.0”, “Oracle.ManagedDataAccess”: “12.1.24160719”, }, “frameworks”: { “netstandard1.6”: { “imports”: [ “dnxcore50”, “net461” ] } } } 这就是我此刻尝试这样做的方式。 using Oracle.ManagedDataAccess.Client; public class MyRepository { public string GetServerVersion() { var _db = new OracleConnection(“User Id=myUser;Password=myPassword;Data Source=MyOracleConnection”); var serverVersion = _db.ServerVersion; return serverVersion; } […]

将DB Connection对象传递给方法

想知道是否建议传递数据库连接对象(到其他模块)或让方法(在另一个模块中)负责设置它。 我倾向于让方法设置为不必在使用之前检查连接的状态,只是让调用者将任何所需的数据传递给设置连接所需的调用方法。

OracleConnection抛出空exception

我正在尝试从我的新PC连接到我的Oracle数据库。 我刚刚安装了Visual Studio和ODAC。 但是,当我尝试做一个简单的连接我得到一个空消息,空源,空数的exception,只是错误代码是-2147467259 。 OracleConnection Prueba; Prueba = new OracleConnection(“Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXX)));User Id=XXX;Password=XXX;Pooling=true;Max Pool Size=10;Min Pool Size=1”); Prueba.Open(); 例外细节 这是Exception.ToString()代码: “在Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String procedure)中的Oracle.DataAccess.Client.OracleException 在Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src) 在Oracle.DataAccess.Client.OracleConnection.Open() at OracleConnectionS.Program.Main(String [] args)在C:\ Users \ Simetri \ Documents \ Visual Studio 2010 \ Projects \ OracleConnection \ OracleConnection \ Program.cs:第19行“ […]

持久安全信息Property = true且Persist Security Info Property = false

对于属性: Persist Security Info=true 和 Persist Security Info=false 你能告诉我他们之间有什么区别吗?如果我不把它放在我的连接中会发生什么? connect.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:/Users/Nourah/Downloads /Phase3/Salary.accdb; Persist Security Info=False;”;

在Dispose方法中关闭数据库连接是对的吗?

我怀疑我们的某个应用程序中使用的数据库连接并不总是关闭。 我去看代码,我发现了一个具有SqlConnection对象的类DataProvider 。 连接在这个类的构造函数中打开,并在它的Dispose方法中关闭(不要判断,我知道保持一个开放的连接是邪恶的,它不是我的代码,它不是问题的重点)。 Dispose方法实现如下: protected virtual void Dispose(bool disposing) { if (!_disposed) { if (disposing) { if (_conn != null) _conn.Close(); } _disposed = true; } } 问题是: 是否始终保证连接已关闭? 这段代码对吗? 我认为应该有_conn.Dispose()调用 – 我是对的,可能会影响不关闭连接(可能不会)?

Oracle.DataAccess.Client.OracleException ORA-03135:连接丢失联系

我有一个.Net服务,可以在每次请求时连接到Oracle数据库。 它在开始时工作正常,但在我开始获得一些请求之后: Oracle.DataAccess.Client.OracleException ORA-03135: connection lost contact at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at MyApp.Services.OracleConnectionWithRetry.ExecuteReader(OracleCommand command) … 知道可能是什么问题吗? 我处理所有连接,结果和参数。 这项服务的负担非常低。

使用C#winform中的app.config访问数据库连接字符串

我似乎无法在我的c#winforms应用程序中访问app.config数据库连接字符串。 app.config代码 C#代码: SqlConnection conn = new SqlConnection(); conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings[“MyDBConnectionString”]; 当我尝试C#代码时,我收到一条消息: 警告1’System.Configuration.ConfigurationSettings.AppSettings’已过时:’此方法已过时,已被System.Configuration取代!System.Configuration.ConfigurationManager.AppSettings’ 但是,当我尝试使用时: conn.ConnectionString = System.Configuration!System.Configuration.ConfigurationManager.AppSettings[“MyDBConnectionString”]; 我收到一个错误: 只能将赋值,调用,递增,递减和新对象表达式用作语句