Tag: sql

将“TOP 1”添加到sql语句会显着提高性能吗?

在SQL查询中,添加“TOP 1” SELECT TOP 1 [values] FROM [TABLE] where [TABLE].Value = “ABC” 当我知道这些记录中只有一个时,我会提高性能吗? 具体来说,我正在考虑LinqToSql和方法之间的区别.Single(…)和.First(…) ,其中.First(…)将TOP 1添加到生成的sql中。 LinqToSql已经感觉很慢,所以我只是想办法让它更快。 编辑: [TABLE].Value可能是某些情况下的外键。

围绕SqlTransaction回滚的exception处理

我有两个存储过程,我想在事务中执行包装。 由于各种原因,我需要在我的应用程序代码中而不是在数据库中处理事务。 目前,我的代码如下所示: try { using (SqlConnection conn = Connection()) { conn.Open(); using (SqlTransaction sqlTrans = conn.BeginTransaction()) { try { using (SqlCommand cmd1 = new SqlCommand(“Stored_Proc_1”, conn, sqlTrans)) { cmd1.CommandType = CommandType.StoredProcedure; cmd1.ExecuteNonQuery(); } using (SqlCommand cmd2 = new SqlCommand(“Stored_Proc_2”, conn, sqlTrans)) { cmd2.CommandType = CommandType.StoredProcedure; cmd2.ExecuteNonQuery(); } sqlTrans.Commit(); } catch { sqlTrans.Rollback(); throw; } […]

无法序列化DataTable。 未设置DataTable名称

我需要将所有数据表导出到单个XML文件,并且由于System.OutOfMemoryException(如果有一个巨大的表),我无法一次性导出所有行。 所以我试图导出N行。 但是,如果我在查询中使用分页语法,则WriteXml会抛出exception。 我在LINQPad中测试了两个查询,它们没问题。 System.InvalidOperationException:无法序列化DataTable。 未设置DataTable名称。 // The first query causes exception string oraQueryGetTableData = “SELECT * FROM (SELECT t0.* FROM MY_TABLE t0) WHERE ROWNUM <= 100"; // The second query runs without any error //oraQueryGetTableData = "SELECT * FROM MY_TABLE"; OracleCommand oraCommandGetTableData = new OracleCommand(oraQueryGetTableData, oraConnection); OracleDataReader oraReaderTableData = oraCommandGetTableData.ExecuteReader(); DataTable dataTable = new […]

在DataTable中将Yes / No / Null从SQL转换为True / False

我有一个Sql数据库(我无法控制架构),它有一个具有varchar值为“是”,“否”的列,或者它将为null。 出于我正在做的目的,null将被处理为否。 我使用数据表和表适配器在c#net 3.5中编程来提取数据。 我想使用绑定源直接将列绑定到我的程序中的复选框但是我不知道如何或在何处将逻辑转换为字符串Yes / No / null为布尔值True / False; 从SQL Server读取null并在更新上写回No是可接受的行为。 任何帮助是极大的赞赏。 编辑 – 这是为Windows开发的。

必须定义Sql查询参数名称

您好我有这个SQL查询: SQL = “SELECT SUM( ” + “CASE WHEN rn =1” + “THEN v.FirstAmount” + “WHEN rn =2” + “THEN v.SecondAmount ” + “ELSE v.ThirdAmount ” + “END ) ” + “FROM (” + “SELECT cv. * , @rn := IF( @vi = `Violation ID` , @rn +1, 1 ) AS rn, @vi := `Violation […]

EF4两个型号一个数据库,可能吗?

我一直在寻找这个答案,似乎找不到任何东西,但是对于EF4,我想创建一个基础模型并放入我们的“基础”和我们创建的任何新项目,如果我们需要向该站点db添加自定义表是否可以添加一个只有那些特定表格的模型并将其链接到我们的“基础”中的模型我似乎无法在这样的事情上找到一个好的资源,这似乎就像它是正常的有一个可重复使用的基础模型和一个单独的一个用于任何一个off 感谢您的帮助或指点!

将“SQL”导出移植到T-SQL

我有一个第三方应用程序,它将数据库导出为“SQL格式”,这是相当明确的,但它似乎没有完全使用T-SQL。 当我导出它时产生这样的东西 INSERT INTO [ExampleDB] ( [IntField] , [DateTimeField] , [VarcharField], [BinaryField]) VALUES (1 , ‘2012/04/02 12:25:00:01’ , ‘Some Text’ , X’123456′), (2 , ‘0000/00/00 00:00:00:00’ , ‘B’ , NULL), –(SNIP, it does this for 1000 records) (999,’0000/00/00 00:00:00:00′ , ‘Other Text’ , null); (1000 ,’0000/00/00 00:00:00:00′ , ‘D’ , null); INSERT INTO [ExampleDB] ( […]

使用c#从分隔文本文件中插入SQL Server表中的批量数据

我有制表符分隔的文本文件。 文件大约100MB。 我想将此文件中的数据存储到SQL Server表。 存储在sql server中时,该文件包含100万条记录。 实现这一目标的最佳方法是什么? 我可以在c#中的momory数据表中创建,然后将其上传到sql server,但在这种情况下,它会将整个100 MB的文件加载到内存中。 如果文件大小变大怎么办?

强类型DataContext如何工作?

这是我今天早些时候提出的问题的深入延续, 我仍然难以理解。 我正在为我的应用程序使用强类型DataContext,虽然它发出警告,但它神奇地起作用。 它是如何做到的? 这是通常用于使用LINQ-to-SQL连接到数据库的代码。 class MyDatabase : DataContext { public Table Widgets; public Table Cars; public MyDatabase (string connection) : base(connection) { } } 即使它发出警告,它也可以开箱即用。 可以使用以下方法开始阅读: using (var db = new MyDatabase(connectionString)) { foreach (var w in db.Widgets) Console.WriteLine(w); } Widgets似乎是MyDatabase类的一个字段。 在我的代码中,我不会将它分配给任何东西。 但在其他地方,我正在阅读它并且它具有价值。 为什么? 在LINQ-to-SQL的其他示例中,包括由Visual Studio 2008的DBML布局工具生成的代码,数据上下文类可能如下所示: public partial class MyDatabase : DataContext { […]

Dapper.SimpleCRUD插入/更新/获取失败并显示消息“实体必须至少有一个属性”

我是Dapper的新生儿。 尝试将CRUD操作与Dapper和Dapper.SimpleCRUD lib结合使用。 这是示例代码…… 我的数据模型看起来像 Class Product { public string prodId {get;set;} public string prodName {get;set;} public string Location {get;set;} } 精巧的实施 – 插入 public void Insert(Product item) { using(var con = GetConnection()) { con.Insert(item); } } 由于Db中的ProdId是标识列,因此失败。 它如何表明ProdId是DB中的标识列? 精巧的实施 – 获取 public IEnumerable GetAll() { IEnumerable item = null; using (var con = GetConnection()) […]