Tag: sql server

.NET SqlDependency有很多通知与高速率轮询?

我有一张小桌子(大约200行),它一直在变化(每秒几次)。 我正在寻找一种解决方案,我可以在每次更改时接收来自数据库的通知,而不是轮询它(假设每秒5-10次)。 此外,我希望每次只接收更改的行而不是获取整个表 – 我发现使用SqlDependency类实现这一点相当困难。 需要考虑的事情: 我无法控制表中的更改,也无法接收除使用数据库之外的数据。 我打算构建一个服务,将更改广播到我的前端服务器 有没有办法使用SqlDependency做到这一点? 在这种情况下,最佳做法是什么? 顺便说一句:我正在使用SQL Server 2012 提前致谢

如何使SqlConnection超时更快

我正在使用带有SqlClient.SqlConnection的SQL连接字符串,并在字符串中指定Connection Timeout = 5,但它仍然等待30秒才返回失败。 如何让它放弃并快速返回? 我在一个快速的本地网络上,不想等待30秒。 未打开的服务器需要30秒才能失败。 这只是一个快速的实用程序,它总是在这个本地网络上运行。 编辑 :对不起,如果我不清楚。 我希望SqlConnection.Open更快地失败。 希望这可以从我想要更快失败的服务器被关闭的事实中推断出来。 编辑 :似乎设置有时只会失败。 就像它知道服务器的IP地址,并使用TCP / IP与它通信(非本地)但不能联系该地址的SQL Server? 我不确定模式是什么,但我在本地连接SQL Server停止时看不到问题,我在尝试连接到不存在的服务器时没有看到它。 不过,在尝试联系Windows 2008防火墙阻止SQL Server的服务器时,我已经看到了它。

SQL Server连接数的任何限制?

我使用的是SQL Server 2008 Enterprise + C#+ ADO.Net + .Net 3.5。 我正在使用sp_who2或sys.dm_exec_connections来查找活动连接数(如果我找到有效连接数的方法错误,请告诉我)。 对于一些繁重的数据库消费者应用程序,我甚至可以找到活动连接数> 1000。 我想知道SQL Server的活动连接数是否有任何上限限制? 乔治,提前谢谢

如何在c#中使用sqltransaction

我正在使用以下代码一次执行两个命令。 我使用sqltransaction来确保所有命令都被执行或回滚。当我运行没有“事务”的程序时它运行正常但是当我使用“事务”时它们显示错误。 我的代码如下; SqlTransaction transaction = connectionsql.BeginTransaction(); try { SqlCommand cmd1 = new SqlCommand(“select account_name from master_account where NOT account_name = ‘BANK’ AND NOT account_name = ‘LOAN'”, connectionsql); SqlDataReader dr1 = cmd1.ExecuteReader(); while (dr1.Read()) { comboBox1.Items.Add(dr1[0].ToString().Trim()); } cmd1.Dispose(); dr1.Dispose(); SqlCommand cmd2 = new SqlCommand(“select items from rate”,connectionsql); SqlDataReader dr2 = cmd2.ExecuteReader(); while (dr2.Read()) { comboBox2.Items.Add(dr2[0].ToString().Trim()); […]

在Sql Server连接字符串中使用Encrypt = yes – >“provider:SSL Provider,error:0 – 证书的CN名称与传递的值不匹配。”

我在SQL Server连接字符串中使用Encrypt=yes ,因为我需要加密TCPIP流量,但在打开连接时出现错误: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 – The certificate’s CN name does not match the passed value.) 有任何建议如何解决这个问题? 我假设我的服务器之间需要某种证书关系,但不知道从哪里开始。 我需要两个连接,一个连接到SQL 2000服务器,一个连接到2005服务器。

从存储过程中获取C#asp.net中的返回值(语法问题)

我在尝试为我的C#2008 asp.net代码获取正确的语法时遇到问题。 我需要从我的存储过程中获取返回值(选择@@ Identity) 我的C#代码是: SqlConnection conn = new SqlConnection(strConn); string sql = “usp_ClientProfile_Header”; SqlCommand cmdHeader = new SqlCommand(sql, conn); cmdHeader.CommandType = CommandType.StoredProcedure; cmdHeader.Parameters.Add(new SqlParameter(“@FirstName”, SqlDbType.VarChar, 50)); cmdHeader.Parameters[“@FName”].Value = txtFName.Text.Trim(); cmdHeader.Parameters.Add(new SqlParameter(“@LastName”, SqlDbType.VarChar, 50)); cmdHeader.Parameters[“@LName”].Value = txtLName.Text.Trim(); cmdHeader.Parameters.Add(new SqlParameter(“@EmailAddress”, SqlDbType.VarChar, 100)); cmdHeader.Parameters[“@Email”].Value = txtEMail.Text.Trim(); cmdHeader.Parameters.Add(new SqlParameter(“@Address1”, SqlDbType.VarChar, 255)); cmdHeader.Parameters[“@Address1”].Value = txtAddress1.Text.Trim(); cmdHeader.Parameters.Add(new SqlParameter(“@City”, SqlDbType.VarChar, 50)); […]

显示ConnectionString对话框

我正在尝试在C#中创建一个应该能够创建,备份和还原SQL Server数据库的程序。 为此,用户需要能够为所需的SQL Server(和数据库)设置连接字符串。 我想使用与Visual Studio相同的对话框来创建连接字符串。 这可能吗?

无法找到程序集“Microsoft.SqlServer.Types”版本10或更高版本

我有个问题。 我无法将迁移添加到我的ASP.NET WebAPI 2项目中。 我收到错误: “此提供程序无法使用空间类型和函数,因为无法找到程序集”Microsoft.SqlServer.Types“版本10或更高版本。” 我知道有几个问题和答案,如: 在Azure上找不到“Microsoft.SqlServer.Types”版本10或更高版本 在ASP.NET中将字符串转换为DbGeometry时出现“空间类型和函数不可用”错误 但! 问题是… 我已经安装了Microsoft.SqlServer.Types。 我已经将Global.asax配置为: SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath(“〜/ bin”))到Application_Start中。 引用设置为本地副本> true。 NuGet包都已更新。 我已经尝试降级并升级包。 当我尝试运行Add-Migration v002时,这是完整的错误: System.InvalidOperationException:此提供程序无法使用空间类型和函数,因为无法找到程序集“Microsoft.SqlServer.Types”版本10或更高版本。 zh_cn System.Data.Entity.SqlServer.SqlTypesAssemblyLoader.GetSqlTypesAssembly()zh_cn System.Data.Entity.SqlServer.SqlSpatialServices.GeographyFromText(String wellKnownText)zh_cn System.Data.Entity.Spatial.DbGeography.FromText(String wellKnownText)zh_cn System.Data .Entity.Migrations.Model.ColumnModel.CreateDefaultValue() zh_cn System.Data.Entity.Migrations.Model.ColumnModel..ctor(PrimitiveTypeKind type,TypeUsage typeUsage)zh_cn System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.BuildColumnModel(EdmProperty属性,TypeUsage conceptualTypeUsUsage,TypeUsage defaultStoreTypeUsage,IDictionary 2 annotations) en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.BuildColumnModel(EdmProperty property, ModelMetadata modelMetadata, IDictionary 2 annotations) en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer。 c__DisplayClass2e3.b__2df(EdmProperty p)zh_cn System.Data.Entity.Utilities.IEnumerableExtensions.Each [T](IEnumerable 1 ts, […]

在C#中从SQL数据库读取值

我刚刚开始学习C#,我可以毫无问题地将数据写入数据库。 但是我在阅读方面遇到了问题,SQL执行得很好,但我遇到了存储问题。 我如何存储应返回的四列,然后将它们显示为消息框? 谢谢。 SqlCommand myCommand = new SqlCommand(“select * from Requests where Complete = 0”, myConnection); SqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) Console.WriteLine(myReader[“Username”].ToString()); Console.WriteLine(myReader[“Item”].ToString()); Console.WriteLine(myReader[“Amount”].ToString()); Console.WriteLine(myReader[“Complete”].ToString());

SQL Server的超时设置

我正在使用VSTS 2008 + ADO.Net + C#+。Net 3.5 + SQL Server 2008.我在客户端使用ADO.Net连接到数据库服务器以执行存储过程,然后从存储过程返回结果。 这是我的代码。 我有两个关于超时的问题, 如果我没有明确设置任何超时相关设置,对于与数据库服务器的连接,是否有任何超时设置(例如,如果在一段默认时间内无法连接到数据库服务器,会有一些超时exception?)? 如果我没有明确设置任何超时相关设置,对于执行存储过程,是否有任何超时设置(例如,如果无法从服务器检索到ADO.Net客户端的结果一段默认时间,则会有一些超时例外?)? using (SqlConnection currentConnection = new SqlConnection(“Data Source=.;Initial Catalog=TestDB;Trusted_Connection=true;Asynchronous Processing=true”)) { // check current batch conut currentConnection.Open(); using (SqlCommand RetrieveOrderCommand = new SqlCommand()) { RetrieveOrderCommand.Connection = currentConnection; RetrieveOrderCommand.CommandType = CommandType.StoredProcedure; RetrieveOrderCommand.CommandText = “prc_GetOrders”; RetrieveBatchCountCommand.Parameters.Add(“@Count”, SqlDbType.Int).Direction = ParameterDirection.Output; RetrieveBatchCountCommand.ExecuteNonQuery(); int rowCount = […]