Tag: ado.net

SQL SERVER中的连接池(快速) – 建议的数量?

是否有一个建议的连接数来自我用于连接池的每个应用程序..,我的应用程序使用asp.net和c#对抗“同一”服务器上的sql express。 我有5个应用程序正在运行,它们没有被密集使用,所有连接都被打开和关闭.. 所以我想把每个应用设置为min pool = 5 所以这5 x 5 = 25 可以sql表达处理25连接…实际上5个池和每个池5个连接? 我可以上十点吗? 是否有必要将MAX池属性放在连接字符串中以确保我不会超过每个池的数字? 任何帮助真正得到了帮助

使用Dataview.RowFilter从SomeTable中选择TOP 5 *?

我需要从缓存的Dataview对象中选择5个最近的行,有没有办法做到这一点? 我试过但是Indexer DataColumn是空的。 : public static DataView getLatestFourActive() { DataTable productDataTable = getAll().ToTable(); DataColumn ExpressionColumn = new DataColumn(“Indexer”,typeof(System.Int32)); ExpressionColumn.Unique = true; ExpressionColumn.AutoIncrement = true; ExpressionColumn.AllowDBNull = false; ExpressionColumn.AutoIncrementSeed = 0; ExpressionColumn.AutoIncrementStep = 1; productDataTable.Columns.Add(ExpressionColumn); DataView productFilteredView = productDataTable.DefaultView; productFilteredView.RowFilter = “isActive=1 and Indexer<4"; return productFilteredView; } getAll()返回缓存的DataView 谢谢

如何通过SqlConnection获取上次执行的SQL查询?

实际上,我的情景与此处提到的有点不同。 我问了其他问题。 但由于我没有在那里得到解决方案,我决定改变方法。 我的代码可以访问SqlConnection对象。 我无法访问所有其他ADO.NET对象,如SqlCommand , SqlParameter等。 这些其他对象由Dapper Extensions ORM使用。 我的应用程序使用SqlConnection对象和Dapper Extensions方法执行SQL查询。 SQL查询由Dapper Extensions自动生成; 我无法访问生成的查询。 我想记录这个SQL查询。 我已经有了我的日志记录模块,我唯一需要的是连接对象执行的最后一个SQL查询。 如何通过SqlConnection获取上次执行的SQL查询? 以下操作无效,因为无法访问SqlCommand 。 如果我得到底层的SqlCommand ,我可以使用下面的代码从它构建查询; 不幸的是,我无法访问它。 public string GetCommandLogString(IDbCommand command) { string outputText; if(command.Parameters.Count == 0) { outputText = command.CommandText; } else { StringBuilder output = new StringBuilder(); output.Append(command.CommandText); output.Append(“; “); IDataParameter objIDataParameter; int parameterCount = command.Parameters.Count; for(int […]

为什么在C#时分号不能放在OracleCommand的CommandText中

为什么分号(’;’)在C#时无法放在OracleCommand的CommandText中 只是舔下面 string sql = “select * from table1;”; OracleCommand oc = new OracleCommand(sql , con); oc.CommandType = CommandType.Text; oc.ExecuteNonQuery(); 结果将是一个错误。 为什么? 谁能告诉我原因?

SQLiteFunction简单不起作用

我试图使用我的C#和ADO.NET代码中的SQLiteFunction。 谁能说我为什么会遇到这个问题? System.Data.SQLite.dll中发生未处理的“System.Data.SQLite.SQLiteException”类型的exception附加信息:“DEMOIT”附近的SQLite错误:语法错误 我使用.NET 3.5 x86与SQLite ADO.NET 1.0.65 – 帮助! public class Program { static void Main( string[ args ) { test(); } public static void test() { SQLiteConnection sqlConn = new SQLiteConnection( “Data Source=TestFoods.db;” ); sqlConn.Open(); SQLiteCommand sqlCmd = new SQLiteCommand( “PRAGMA integrity_check” , sqlConn); sqlCmd.ExecuteNonQuery(); SQLiteFunction.RegisterFunction( typeof(DEMOIT) ); sqlCmd = new SQLiteCommand( “SELECT […]

ADO.NET用于创建链接表的方式

我正在编写一个使用ADO.NET OLEDB提供程序的应用程序。 数据库是Access。 大多数DB交互都是通过DDL / DML SQL查询。 我现在需要创建链接表,似乎没有办法单独使用ADO.NET。 既不是简单的DDL查询,也不是尝试直接操作Access系统表。 我试图避免使用ADOX,在我的应用程序中使用额外的引用/依赖。 有人知道解决这个问题吗? 非常感激。 这是我目前如何使用ADOX创建链接表。 using ADOX; public static void CreateLinkedTable(string sourceDB, string sourceTable, string targetDB, string targetTable) { Catalog cat = new Catalog(); cat.let_ActiveConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + targetDB); Table table = new Table(); table.Name = targetTable; table.let_ParentCatalog(cat); table.Properties[“Jet OLEDB:Create Link”].Value = true; table.Properties[“Jet OLEDB:Link Datasource”].Value = sourceDB; […]

查找数据库上的打开连接数

我的web应用程序是在asp.net 2.0,c#2.0和sql server 208中如何找到我的sql server 2008数据库上的打开连接数。有没有办法清除连接池。因为我的网站托管在共享主机上他们提供的连接有限。 在我的编码中,我在使用后关闭了所有连接,但我仍然收到暂停数据库的警告。 任何人都可以告诉我如何在数据库上找到数字打开连接以及如何清除连接池。 我使用using语句进行连接,并在finally块中使用后关闭所有连接。 所以尽管有错误,它会关闭oped连接。 提前致谢。

DbCommand和参数化SQL,ORACLE vs SQL Server

我有一个应用程序,除其他外,将各种数据存储到数据库中。 数据库可能是ORACLE或SQL Server。 SQL是根据执行期间获取的配置和值动态创建的。 通过使用DbProviderFactory,我的db方法可以使用ORACLE或SQL Server,而无需为任何数据库编写自定义代码,除了一件事; 参数/绑定变量。 对于ORACLE,我需要使用”:ParameterName”而对于SQL Server,我需要使用”@ParameterName” 。 有没有办法让这个通用? 示例代码: public class DbOperations { private DbProviderFactory m_factory; private DbConnection m_CN; … private void InsertToDb(ValueType[] values, ColumnType[] columns) { DbCommand Cmd = m_factory.CreateCommand(); Cmd.Connection = m_CN; StringBuilder sql = new StringBuilder(); sql.Append(“INSERT INTO “); sql.Append(DestinationTable); sql.Append(” (“); for (int i = 0; i < […]

SqlDataReader.Read和SqlDataReader.NextResult之间的区别

这两种方法的主要区别是什么? 在msdn网站上,它解释如下,但我不明白。 Read将SqlDataReader推进到下一条记录。 (重写DbDataReader.Read()。) NextResult在读取批处理Transact-SQL语句的结果时,将数据读取器NextResult到下一个结果。 (重写dbDataReader.NextResult()。)

从ADO.NET确定SQL Server的版本

我需要确定连接字符串连接C#控制台应用程序(.NET 2.0)的SQL Server版本(在此特定情况下为2000,2005或2008)。 任何人都可以就此提供任何指导吗? 谢谢,MagicAndi 更新 我希望能够在可能的情况下确定ADO.NET连接对象的SQL Server版本。