Tag: sql

如何在sql中获取下一个自动增量值

我正在c#中创建一个winform应用程序并使用sql数据库。 我有一个表employee_master ,其中包含Id, name, address和phone no 。 Id是自动增量,所有其他数据类型都是varchar 。 我使用此代码获取下一个自动增量值: string s = “select max(id) as Id from Employee_Master”; SqlCommand cmd = new SqlCommand(s, obj.con); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); int i = Convert.ToInt16(dr[“Id”].ToString()); txtId.Text = (i + 1).ToString(); 我在textBox上显示。 但是当删除表中的最后一行时,我仍然得到最近在文本框中删除的值 我该如何获得下一个自动增量值?

我可以使用Parallel.For和sql命令吗?

我有一类范围 public class avl_range { public long start { get; set; } public long end { get; set; } } 如果我使用正常的FOR工作完美,但必须等待每个命令完成,每个查询需要8秒,所以10个查询需要80秒。 在Parallel版本中如果我只打印范围工作完美,但如果尝试执行命令说已经在进行中。 {“一项操作已在进行中。”} 我怎么解决这个问题? var numbers = new List(); using (var conn = new NpgsqlConnection(strConnection)) { conn.Open(); Action forEachLoop = number => //Begin definition of forLoop { // only the console write line works ok […]

参数化sql查询 – asp.net / c#

所以我最近了解到我绝对应该使用参数化查询来避免SQL注入等安全问题。 这一切都很好,所有,我得到它的工作。 此代码显示了我如何执行的一些代码: param1 = new SqlParameter(); param1.ParameterName = “@username”; param1.Value = username.Text; cmd = new SqlCommand(str, sqlConn); cmd.Parameters.Add(param1); //and so on 但问题是,我有超过14个需要保存到数据库的变量,它就像一个注册表单。 如果我必须将这些行写入14次以参数化每个变量,它看起来会非常混乱。 有没有更有活力的方法呢? 就像使用for循环或其他东西并以某种方式参数化循环中的每个变量一样?

EF DBContext配置不关闭连接

我使用的是EF 6.1.0 我在DBEntites下面有自定义DBContex对象 public partial class DbEntities : DbContext { public DbEntities() : base(“name=DbEntities”) { ////Configuration.LazyLoadingEnabled = true; ////Configuration.ProxyCreationEnabled = false; } //// I have ALL Entites added as below ////public virtual IDbSet CCodes { get; set; } } 我在上下文对象上有以下操作 using (var context = new DbEntities()) { var entitySet = context.Set(); var res = entitySet.Where(predicate).ToList(); […]

将数据从XML文件导入SQL数据库

是否可以将数据从XML文件导入SQL数据库,如果可以,将如何完成。 我有一个包含大约5万个条目的XML文件,我必须创建一个可以操作该数据的应用程序(主要是读取和比较) – 所以我担心的是用这么多数据进行操作(并且很有可能将来会有更多的事情会变得非常缓慢和低效。 如果您认为其他选项会更好,请提供建议。 谢谢

名称空间“System.Data”中不存在类型或命名空间名称“DataSetExtensions”(您是否缺少程序集引用?)

我知道这是一个常见错误,但我对项目中添加的System.Data.DataSetExtensions.dll有正确的引用,我的项目是为.net 4.5构建的SQL CLR项目,我在下一行收到错误: using System.Data.DataSetExtensions; 我还检查了dll的属性,它引用了4.5 dll的正确版本,那么还有什么可能导致这个问题呢? 这是SQL CLR项目的问题吗?

处理entity framework中的例外4

我需要一种方法来区分使用entity frameworkLINQ的SQLexception,例如,当我从DbUpdateException获得的是大量嵌套的内部exception和无用的长错误消息时,如何区分外键约束违规或唯一约束违规? 是否存在任何较低级别的exception,我可以执行类似“Catch FKException”的操作; 捕获“uniqueException”或类似的东西。

在sql server compact edition上执行Insert OR Update(upsert)

我有c#项目正在使用sqlserver压缩版和entity framework进行数据访问。 我需要向db插入或更新大量5000+或更多的行,因此如果密钥存在则更新记录(如果不插入)。 我无法找到一种方法来实现这一点与紧凑版和EF具有可怕的性能,即在核心i7计算机上花费2分钟。 我已经尝试搜索记录,看它是否存在,然后插入,如果没有,或更新,如果它,搜索是杀手。 我已经尝试编译搜索查询,但只做了一点改进。 我尝试的另一件事是在try catch中插入记录并且如果更新失败,但这迫使我在每条记录上保存更改以获得exception,而不是在最后是性能杀手。 显然我不能使用存储过程,因为它是紧凑版。 另外我看过只是直接在db上执行t-sql,但是在compact中缺少进程语句似乎排除了这一点。 我在全世界范围内搜寻和思考。 我真的想使用压缩,如果我可以过度表达部署的好处和能力,以防止用户挖掘数据库。 任何建议将不胜感激。 谢谢

Linq to SQL – Group By和Count

我正在尝试转换此查询(已经工作) SELECT Building.NAME, COUNT([User].ID) FROM BuildingUser INNER JOIN Building ON Building.ID = BuildingUser.ID_BUILDING INNER JOIN [User] ON [User].ID = BuildingUser.ID_USER GROUP BY Building.NAME 要Linq to SQL,但我不知道我做错了什么。 看看我的尝试 from buildinguser in db.GetTable() join building in db.GetTable() on buildinguser.ID_BUILDING equals building.ID join user in db.GetTable() on buildinguser.ID_USER equals user.ID group building by building.NAME into grpBuilding select new […]

如何从一列插入多行

我想在一列中插入多行。 对于我这样的POS系统。 表A : Transaction ID| Item Code|Qty|Total|Transaction Date| —————————————————– 00001 | Item 1 |3 |100 |12/07/2014 | 00001 | Item 2 |2 |50 |12/07/2014 | 00001 | Item 3 |1 |150 |12/07/2014 | 之后我想在我的桌子上看到这个 Transaction ID|Item Code |Total of Qty|Total of Price|Transaction Date| ———————————————————————————– 00001 |Item 1, Item 2, Item 3| 6 | 150 […]