Tag: sql

C# – 关闭Sql对象的最佳实践

如果你有一个带Sqlaccess的C#函数,是否必须关闭所有对象/句柄,或者在退出函数后自动清理所有内容 例如: void DoSqlStuff() { SqlConnection sqlConn = new SqlConnection(…); SqlCommand cmd = new SqlCommand(…); SqlDataReader sqlData= null; sqlConn,Open(); sqlData = cmd.ExecutReader(); while(sqlData.Read()) { … } } 关闭SqlConn和SqlData是可选的,推荐的还是必需的? 谢谢。

TransactionScope和Transactions

在我的C#代码中,我使用TransactionScope,因为我被告知不要依赖我的sql程序员将始终使用事务,我们负责和yada yada。 话说回来 它看起来像TransactionScope对象在SqlTransaction之前回滚? 这是可能的,如果是这样,在事务中包装TransactionScope的正确方法是什么。 这是sql测试 CREATE PROC ThrowError AS BEGIN TRANSACTION –SqlTransaction SELECT 1/0 IF @@ERROR 0 BEGIN ROLLBACK TRANSACTION –SqlTransaction RETURN -1 END ELSE BEGIN COMMIT TRANSACTION –SqlTransaction RETURN 0 END go DECLARE @RESULT INT EXEC @RESULT = ThrowError SELECT @RESULT 如果我运行这个,我得到除以0并返回-1 从C#代码调用我得到一个额外的错误消息 遇到零除错误。 EXECUTE之后的事务计数表示缺少COMMIT或ROLLBACK TRANSACTION tatement。 先前的计数= 1,当前计数= 0。 如果我给sql事务一个名字然后 无法回滚SqlTransaction。 未找到该名称的任何事务或保存点。 […]

多个SQL查询asp.net c#

我需要在一个函数中运行几个查询,我是否必须为每个函数创建一个新的SqlConnection? 或者有一个连接,但不同的SqlCommands也可以工作? 谢谢, 编辑:这会有用吗? using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand(query1, conn)) { cmd.ExecuteNonQuery(); } using (SqlCommand cmd = new SqlCommand(query2, conn)) { cmd.ExecuteNonQuery(); } using (SqlCommand cmd = new SqlCommand(query3, conn)) { cmd.ExecuteNonQuery(); } }

entity framework – SQL Azure重试策略

请问任何人都可以指导我如何使用EF to SQL Azure实现重试策略。

SQLDataReader如何处理真正大的查询?

实际上我不确定标题是否准确描述了这个问题,但我希望它足够接近。 我有一些代码从数据库表执行SELECT,我知道这将导致大约150万行被选中。 每行中的数据不大 – 每行可能20个字节。 但那仍然是30MB的数据。 每行包含一个客户编号,我需要为每个客户做一些事情。 我的代码看起来像: SqlConnection conn = new SqlConnection(connString); SqlCommand command = new SqlCommand(“SELECT … my select goes here”, conn); using (conn) { conn.Open(); using (SqlDataReader reader = command.ExecuteReader()) { while(reader.Read()) { … process the customer number here } } } 所以我只是迭代SELECT返回的所有客户。 我的问题是,这会导致数据库的多次读取,还是只读取一次? 我假设网络缓冲区不足以容纳30MB的数据,那么.NET在这里做什么呢? 每次Read()推进指针时,SELECT的结果是否会让某些地方的SQLDataReader啃掉一行? 还是回到数据库? 我问的原因是代码中的“…处理客户编号”部分可能需要一些时间,因此对于150万客户来说,代码(上面的while循环)将花费很多时间来完成。 当发生这种情况时,我是否需要担心其他人在数据库上阻挡我,或者我知道我已经从数据库中完成了一个SELECT并且我不会再回来了吗?

SQL Server Management Studio无法连接

我已经安装了SQL Server Management Studio 2014.在“连接到服务器”窗口中,我选择服务器类型为“数据库引擎”,服务器名称为“(本地)”但是当我尝试连接时,显示n错误 – 标题:连接到服务器 无法连接.. 附加信息: 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 validation实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 – 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:2) 请帮忙做什么……

使用DataTable将数据加载到DataGridView的Progressbar

我有一个DataGridView ,我在其中从SQL服务器数据库加载数据。 当我加载数据时需要很长时间。 我想向用户提供数据正在加载的信息。 我可以问你在将数据加载到DataGridView时连接Progressbar的最佳方法是什么? 我不希望任何人为我制作完整的代码。 我只是想知道如何做到这一点。 我看到有人以赏金授予我的问题。 我想说,目前我使用这个代码,如果它适合的话我会评价。 DTGdataTable = new DataTable(); SqlDataAdapter SDA = new SqlDataAdapter SDA.Fill(DTGdataTable); dataGridView1.DataSource = DTGdataTable ; 谢谢大家的时间。

更新条目时发生错误。 有关详细信息,请参阅内部exception

当我删除列表框中的项目时,我收到问题中的错误,如下面的屏幕截图所示: 我不知道内部exception在哪里,但我尝试尝试,捕获但我在问题中得到了相同的错误。 以下是所有代码: namespace WpfApplication7 { /// /// Interaction logic for Edit_Rooms.xaml /// public partial class Edit_Rooms : Window { public Edit_Rooms() { InitializeComponent(); } //initialises entities WpfApplication7.AllensCroftEntities1 allensCroftEntities1 = new WpfApplication7.AllensCroftEntities1(); private Room ObjectIndex; private void Window_Loaded(object sender, RoutedEventArgs e) { // Load data into Rooms. System.Windows.Data.CollectionViewSource roomsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource(“roomsViewSource”))); //runs a query to […]

我错过了LINQ的一些内容吗?

我似乎错过了一些关于LINQ的东西。 对我来说,看起来它正在采用我最喜欢的SQL的一些元素,并将它们转移到C#语言中并将它们用于其他事情。 我的意思是,我可以看到在数据库以外的东西上使用类似SQL的语句的好处。 但是,如果我想编写SQL,那么,为什么不编写SQL并将其保留在C#之外呢? 我在这里想念的是什么?

在数据库中存储和解析布尔表达式

对于我之前的问题,这是一个后续问题, 哪种设计模式适合此工作流程要求? 。 我想知道什么是在数据库中存储布尔表达式的最佳方法,然后在运行时对其进行评估而不需要太多努力。 我有一个要求,即每个月末需要从屏幕上执行一组作业,并且决定是否可以执行作业取决于先前作业的结果。 所以我应该能够在数据库中保存一个像E =(A或B)和(C或D)的表达式(可以是任何复杂的嵌套表达式)。 这意味着如果A或B成功且C或D成功,则E可以运行。 如何在数据库中表示并解析并在以后评估条件? 想这样做(尚未测试) 如果“工作E =(A和B)或(C和D)”。 将其存储为表中的树结构 JobId DependentJobId SuccessJobId FailureJobId EABCECD 0 ED 1 0 EB 1 0 这意味着“如果A成功,请检查B否则检查C”,“如果C成功则检查D”。 进程从最高节点开始,没有“DependentJobId”并在叶节点处停止。 我使用虚拟Job Ids“1”表示成功,使用“0”表示失败。 如果叶节点为零,则允许作业运行。 我不确定如何在T-sql中评估这个问题。 我可能不得不使用递归函数。 要使用的技术:ASP.NET 3.5,C#3.0,SQL Server 2008