草庐IT

SqlCommand

全部标签

c# - 如何在 Sql Server Compact Edition 中使用 LIKE 参数

我正在尝试参数化使用带通配符的LIKE关键字的搜索查询。原来的sql有这样的动态sql:"ANDJOB_POSTCODELIKE'"+isPostCode+"%'"所以我尝试了这个,但是我得到了一个FormatException:"ANDJOB_POSTCODELIKE@postcode+'%'"编辑:我猜FormatException不会来自SqlServerCE,所以按照要求,这是我在C#代码中设置参数的方法。参数在代码中设置如下:command.Parameters.Add("@postcode",SqlDbType.NVarChar).Value=isPostCode;我也试过

c# - 将安全的 SQL 语句创建为字符串

我正在使用C#和.NET3.5。我需要生成并存储一些稍后将在远程服务器上执行的T-SQL插入语句。例如,我有一个员工数组:newEmployee[]{newEmployee{ID=5,Name="FrankGrimes"},newEmployee{ID=6,Name="TimO'Reilly"}}我需要得到一个字符串数组,如下所示:"INSERTINTOEmployees(id,name)VALUES(5,'FrankGrimes')","INSERTINTOEmployees(id,name)VALUES(6,'TimO''Reilly')"我正在查看一些使用String.Forma

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

如果您有一个带有Sqlaccess的C#函数,是否必须关闭所有对象/句柄,或者一旦您退出该函数,所有内容都会自动清理例如:voidDoSqlStuff(){SqlConnectionsqlConn=newSqlConnection(...);SqlCommandcmd=newSqlCommand(...);SqlDataReadersqlData=null;sqlConn,Open();sqlData=cmd.ExecutReader();while(sqlData.Read()){...}}关闭SqlConn和SqlData是可选的、推荐的还是强制的?谢谢。

c# - 在预处理语句 C# 中使用 SqlDBType.Decimal

我正在使用C#中的准备语句。SqlCommandinscommand=newSqlCommand(supInsert,connection);inscommand.Parameters.Add("@ordQty",SqlDbType.Decimal,18);inscommand.Prepare();u=inscommand.ExecuteNonQuery();上面的代码抛出以下异常:SqlCommand.Prepare方法要求“Decimal”类型的参数具有显式设置的Precision和Scale。编辑:如何避免这个异常 最佳答案

c# - 使用负载平衡时如何锁定对象

背景:我正在使用C#编写一个将持久操作放入队列中的函数,每个操作分为3个步骤:1.数据库操作(更新/删除/添加数据)2.使用web服务进行长时间计算3.数据库操作(保存步骤2的计算结果)对步骤1中的同一个db表,检查db表的一致性,例如步骤1中的items相同(具体例子请看下面)为了避免脏数据或损坏,我使用了一个锁对象(一个静态单例对象)来确保这3个步骤作为一个整体事务来完成。因为当多个用户在调用该函数进行操作时,他们可能会在自己操作的不同步骤修改同一个db表而没有这个锁,例如user2在他的step1中删除了itemA,而user1在检查A是否仍然存在他的第3步。(附加信息:与此同时

c# - SqlTransaction.Commit() 之前的 SqlCommand.Dispose()?

在提交事务之前处理分配给事务的命令是否有效?我自己测试了以下代码,它似乎工作正常,但这是一个相当小的例子,所以如果有人肯定知道,我正在寻找确认。internalstaticvoidTestTransaction(){try{Program.dbConnection.Open();using(SqlTransactiontransaction=Program.dbConnection.BeginTransaction()){BooleandoRollback=false;for(inti=0;i 最佳答案 连接、事务和命令对象只是将命

c# - 多次执行相同的 SQL 查询时重用 SqlCommand 是否更好?

当使用相同的查询但不同的参数查询数据库时,是否更好:一次性完成,还是创建两个单独的查询?单次使用示例:using(SqlCommandaddProduct=newSqlCommand(@"insertinto[Products].[Products]([Name],[Price])values(@name,@price)",sqlConnection)){//Insertthefirstproduct.addProduct.Parameters.AddWithValue("@name","Product1");addProduct.Parameters.AddWithValue("@p

c# - 在 sql_variant 列的表值参数中传递类型为 'object' 的参数

我在SQLServer2012中有一个表值参数定义为:CREATETYPE[dbo].[TVP]ASTABLE([Id][int]NOTNULL,[FieldName][nvarchar](100)NOTNULL,[Value][sql_variant]NOTNULL)我在C#中调用它的代码大致如下所示:varmdItems=newDataTable();mdItems.Columns.Add("Id",typeof(int));mdItems.Columns.Add("FieldName",typeof(string));mdItems.Columns.Add("Value",typ

c# - 使用 SQLCommand 插入 C#

将数据插入数据库的最佳方式是什么?这是我的,但这是错误的..cmd.CommandText="INSERTINTOklant(klant_id,naam,voornaam)VALUES(@param1,@param2,@param3)";cmd.Parameters.Add(newSqlParameter("@param1",klantId));cmd.Parameters.Add(newSqlParameter("@param2",klantNaam));cmd.Parameters.Add(newSqlParameter("@param3",klantVoornaam));向列表框

c# - 如何获得使用 ExecuteNonQuery() 时发生的错误消息?

我正在以这种方式执行命令:varCommand=newSqlCommand(cmdText,Connection,tr);Command.ExecuteNonQuery();命令中有错误,但.NET不会抛出任何错误消息。如何知道命令没有正确执行,如何获取异常? 最佳答案 如果您的错误严重性为16或更高,您只会在C#中获得异常。如果您使用的是PRINT,则不会在.NET中出现异常。如果您可以编辑引发错误代码,这将导致C#中的SqlException:RAISERROR('Someerrormessage',16,1)然后您可以在Sql