草庐IT

SQL语句分类

全部标签

c# - 为什么调试器的断点条件允许赋值语句作为 bool 条件?

这非常危险,所以我想知道为什么允许这样做。由于我经常需要在VB.NET和C#之间切换,我有时会添加如下断点条件:foo="bah"如果string变量foo是"bah,我想停止,所以正确的方法是使用foo=="bah"而不是foo="bah"。但它“有效”。您不会在编译或运行时收到任何警告或错误。但实际上这修改变量foo,即使它有不同的值,它也总是"bah"。由于这种情况悄无声息地发生(断点永远不会命中),因此非常危险。为什么允许?我的推理错误在哪里(除了混淆C#和VB.NET语法之外)?在C#中(相对于VB.NET)一个assignmentstatement返回分配的值,因此在本例中

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm

c# - 我如何在类型安全的枚举模式上使用 switch 语句

我以不同的方式找到了一个关于实现枚举的漂亮示例。我认为这就是所谓的类型安全枚举模式。我开始使用它,但我意识到我不能在switch语句中使用它。我的实现如下所示:publicsealedclassMyState{privatereadonlystringm_Name;privatereadonlyintm_Value;publicstaticreadonlyMyStatePASSED=newMyState(1,"OK");publicstaticreadonlyMyStateFAILED=newMyState(2,"ERROR");privateMyState(intvalue,stri

c# - 嵌套的 if 语句混淆了 Razor

我正在尝试设置从数据表中提取的下拉菜单。这适用于第一级菜单。工作代码:@foreach(System.Data.DataRowdrinmenu.Rows){if(Level1!=dr["Level1"].ToString()){@dr["Level1"].ToString()Level1=@dr["Level1"].ToString();}}当我尝试添加嵌套的if语句时出现问题。如果将此代码放入VisualStudio,您会注意到Razor无法识别@foreach循环的右括号。代码中断:@foreach(System.Data.DataRowdrinmenu.Rows){if(Leve

c# - LINQ-to-SQL Table<T>.Attach 有什么作用?

LINQ-to-SQL方法到底是做什么的Table.Attach()和Table.AttachAll()正确使用它们的示例/情况是什么?此外,请查看此相关问题:HowtodetachaLINQ-to-SQLdataobjectfromtheDataContext'strackingmechanism? 最佳答案 它在将数据序列化/反序列化到其他层的多层应用程序中非常有用。简短版:Attach()告诉DataContext该实体不是新实体(对于insert),而是一个更新后的实体,它应该是在数据库中更新。长版:您有一个DataCont

c# - 如何在powershell中实现using语句?

如何在powershell中编写using?这是C#中的工作示例using(varconn=newSqlConnection(connString)){Console.WriteLine("InUsing");}我在Powershell中需要同样的东西(不工作):Using-Object($conn=New-ObjectSystem.Data.SqlClient.SqlConnection($connString)){Write-Warning-Message'InUsing';}它在不使用的情况下工作:$conn=New-ObjectSystem.Data.SqlClient.Sql

C#构造参数查询SQL - LIKE %

我正在尝试在C#中为包含LIKE%%命令的查询构建SQL参数查询。这是我想要实现的目标(请注意数据库是Firebird)varSQL=string.format("SELECT*FROM{0}WHERE{1}LIKE'%?%'",TABLE,NAME);cmd.Parameters.AddWithValue(NAME,"JOHN");现在我已经尝试了每一个排列来使参数起作用,我已经尝试过了;在参数中添加%字符,cmd.Parameters.AddWithValue(NAME,"%"+"JOHN"+"%");或cmd.Parameters.AddWithValue(NAME,"'%"+"

c# - SQL 表和 C# 枚举

假设我的应用程序中有n类用户。我正在使用UserType枚举来区分它们。我是否需要在我的数据库中保留一个名为UserType的表?这样我就可以随时通过查询表而不是搜索应用程序源代码来找到用户类型。这样做我的源代码可能会变得有些复杂。我应该承认这种权衡吗? 最佳答案 是的,同时使用:UserType查找表和枚举为了理解数据结构,我们确实创建了具有定义类型的查找表,即使它们永远不会改变。通过这种方式,您还可以通过将表与此查找相关联来保持参照完整性。自动化您的枚举通过usingT4templates您可以轻松地自动化您的业务层代码以反射(

c# - 小巧玲珑。映射到列名称中包含空格的 SQL 列

我今天设法启动并运行了一些小型沙箱/POC项目,但似乎在一个问题上让我头疼......问题:IsthereawaytogetdappertomaptoSQLcolumnnameswithspacesinthem.我的结果集有这种效果。例如:SELECT001AS[Col1],901AS[Col2],00454345345345435349AS[Col3],03453453453454353458AS[Col4]FROM[SomeSchema].[SomeTable]我的类(class)看起来像这样publicclassClassA{publicstringCol1{get;set;}p

c# - 在插入期间捕获 c# 中的 sql 唯一约束冲突的最佳方法

我在c#中有一个循环,它插入到一个表中。非常基本的东西。在违反唯一约束时抛出的异常对象中是否存在某些东西,我可以使用它来查看有问题的值是什么?或者有没有办法在sql中返回它?我有一系列文件,它们的数据正在加载到表中,我正绞尽脑汁试图找到骗子。我知道我可以将可以找到它的纯基于IO的代码组合在一起,但我想要一些我可以用作更永久解决方案的东西。 最佳答案 您正在寻找的是SqlException,特别是违反主键约束。通过查看抛出的异常的number属性,您可以从此异常中获取此特定错误。这个答案可能与您的需要有关:HowtoIdentifyt