Tag: sql server

我如何知道是否因外键违规而抛出SQLexception?

我想告诉用户一条记录没有被删除,因为它有子数据,但我怎么能确定由于外键违规而引发了exception? 我看到有一个sqlexception类用于所有sqlexception。

数据库更新后如何通知我的程序?

我有一个C#程序,它在SQL Server数据库中查询某些值。 目前,应用程序每分钟查询一次数据库,以确保该表是最新的。 我希望能够做的是只在数据库被更改/更新时才进行查询。 如何在数据库中更新某些内容后如何通知我的程序? 谢谢

我们可以使用代码优先迁移来运行SQL脚本吗?

我们可以使用代码优先迁移来运行sql脚本吗? 我是新手代码,如果我想在update-database命令迁移之前将我的更改保存到SQL脚本文件,是否可能? 如果可能,请提供完成工作的步骤。 此外,如果生成脚本,那么我是否可以使用迁移运行该脚本?

会计数据库 – 存储信用卡和借记卡?

将事务存储到数据库中时 1)您是否将信用卡和借记卡存储在两个不同列下的同一记录中? (没有正号或负号) 例1A TABLENAME … … (Credit) null (Debit) 100 例1B TABLENAME … … (Credit) 250 (Debit) null 要么 2)您存储1个信用积分值和借记负号吗? 例2A TABLENAME … … (Amount) -100 实施例2B TABLENAME … … (Amount) 250

如何在C#中使用ADO获得高效的Sql Server死锁处理?

我有一个类’数据库’,作为ADO.net的包装器。 例如,当我需要执行一个过程时,我调用Database.ExecuteProcedure(procedureName,parametersAndItsValues)。 我们遇到了SQL Server 2000中死锁情况的严重问题。我们团队的一部分正在处理sql代码和事务以最小化这些事件,但我正在考虑使这个数据库类能够抵御死锁情况。 我们希望死锁受害者可能在经过一段时间的延迟后重试,但我不知道是否可能。 以下是我们使用的方法的代码: public int ExecuteQuery(string query) { int rows = 0; try { Command.Connection = Connection; Command.CommandType = CommandType.Text; if(DatabaseType != enumDatabaseType.ORACLE) Command.CommandText = query; else Command.CommandText =”BEGIN ” + query + ” END;”; if (DatabaseType != enumDatabaseType.SQLCOMPACT) Command.CommandTimeout = Connection.ConnectionTimeout; if (Connection.State == ConnectionState.Closed) Connection.Open(); rows = Command.ExecuteNonQuery(); } […]

无法打开,因为它是版本706.此服务器支持版本662和更早版本。 不支持降级路径

当我试图运行我的网站(使用aspx)时,出现了这个问题: System.Data.dll中出现“System.Data.SqlClient.SqlException”类型的exception,但未在用户代码中处理 附加信息:无法打开数据库’C:\ USERS \ XXXX \ DESKTOP \ BERMAN \ APP_DATA \ DATABASE.MDF’,因为它是版本706.此服务器支持版本662及更早版本。 不支持降级路径。 无法打开新数据库’C:\ USERS \ XXXX \ DESKTOP \ BERMAN \ APP_DATA \ DATABASE.MDF’。 CREATE DATABASE被中止。 尝试为文件C:\ Users \ XXXX \ Desktop \ Berman \ app_data \ DataBase.mdf附加自动命名的数据库失败。 存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。 该怎么办?

将CSV文件上传到SQL Server

使用C#将大型csv数据文件上传到SQL服务器的最佳方法是什么? 该文件包含大约30,000行和25列。

“读取器关闭时调用Read的无效尝试”错误(仅适用于冗长的操作)

我们有一个操作,从csv文件中读取超过100.000条记录并插入数据库。 当我使用包含10条记录的文件时,操作在不到一分钟的时间内成功完成。 当我使用100.000记录时,我在10分钟后收到以下错误“无效尝试在读取器关闭时调用读取”。 是否有可以配置的超时以避免此错误? 注意:CommandTimeout已设置为零。 DbCommand cmd = db.GetStoredProcCommand(“aspInsertZipCode”); cmd.CommandTimeout = 0; dataStringToProcess.Remove(dataStringToProcess.Length – 1, 1); db.AddInParameter(cmd, “@DataRows”, DbType.String, dataStringToProcess.ToString()); db.AddInParameter(cmd, “currDate”, DbType.DateTime, DateTime.Now); db.AddInParameter(cmd, “userID”, DbType.Int32, UserID); db.AddOutParameter(cmd, “CountOfUnchangedZipCode”, DbType.String, 1000); DbDataReader rdr = null; try { rdr = (DbDataReader)db.ExecuteReader(cmd); if (rdr.Read()) { if (!String.IsNullOrEmpty(Utility.GetString(rdr, “NewZipCode”))) strNewZipCode = strNewZipCode + “,” + Utility.GetString(rdr, “NewZipCode”); […]

从C#AsyncCTP使用ExecuteReaderAsync的任何缺点

有一些文章指出异步数据库调用在.NET中是个坏主意。 我的数据库调用应该是异步的吗? 我的数据库调用应该是异步第二部分 在C#Async CTP上,有一个名为ExecuteReaderAsync的System.Data.SqlClient.SqlCommand扩展。 我在现有代码上有如下操作: var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[“hubConnectionString”].ConnectionString; using (var conn = new SqlConnection(connectionString)) { using (var cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandText = “sp$DetailsTagsGetAllFromApprovedPropsWithCount”; cmd.CommandType = System.Data.CommandType.StoredProcedure; conn.Open(); var reader = cmd.ExecuteReader(); while (reader.Read()) { //do the reading } conn.Close(); } } 我的代码上有几个这样的操作。 所以,我正在考虑将这些转换为异步。 但另一方面,我对这种方法没有太多的吸引力(也许我没有看到正确的方向,谁知道!)。 那么,在这里使用这种新的异步编程模型有什么缺点吗? 编辑: 假设我重构代码如下: public […]

你应该进行多次插入调用还是传递XML?

我有一个帐户创建过程,基本上当用户注册时,我必须在多个表格中输入用户,个人资料,地址。 User表中有1个条目,Profile中有1个条目,Address表中有2-3个条目。 所以,最多会有5个条目。 我的问题是我应该将这个XML传递给我的存储过程并在那里解析它,还是应该在我的C#代码中创建一个事务对象,保持连接打开并逐个插入地址? 你如何处理这种情况? 即使连接打开,是否可以进行多次调用会降低性能?