jjzjj

ExecuteNonQuery

全部标签

c# - SQLCMD模式下的ServerConnection.ExecuteNonQuery

我正在使用MicrosoftData-TierApplicationframework基于DacPackage创建部署脚本目的。我正在尝试使用Microsoft.SqlServer.Management.Smo.Server执行此脚本的类...SqlConnectiondeployConnection=newSqlConnection(connBuilder.ToString());deployConnection.Open();Serverserver=newServer(newServerConnection(deployConnection));server.Connection

c#: ExecuteNonQuery() 返回 -1

我以前使用过这个方法来返回更改的行数。我是运行插入方法,插入在存储过程中运行良好,但ExecuteNonQuery的返回值始终返回-1。这是我的C#代码:intret=0;using(SqlConnectionconn=newSqlConnection(this.ConnectionString)){using(SqlCommandcmd=newSqlCommand(QueryName,conn)){conn.Open();if(Params!=null)cmd.Parameters.AddRange(Params);cmd.CommandType=CommandType.Stored

c# - ExecuteNonQuery() 执行存储过程时返回-1

我正在尝试在VisualStudio中执行存储过程。它在下面给出。CREATEPROCEDURE[dbo].[addStudent]@stuNamevarchar(50),@addressvarchar(100),@telvarchar(15),@etelvarchar(15),@nicvarchar(10),@dobdateASBEGINSETNOCOUNTON;DECLARE@currentIDINTDECLARE@existPersonINTSET@existPerson=(SELECTp_IDFROMStudentWHEREs_NIC=@nic);IF@existPerson=

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

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

c# - 通过 ExecuteNonQuery 检查表中的记录是否存在于数据库中

在我的程序中,我需要使用if语句检查数据库中的记录是否已存在于表中。使用c#我正在尝试通过sql连接来执行此操作。因为我假设ExecuteNonQuery();命令返回一个整数值,如果我的假设是真的,我想知道什么值是真的知道表中是否存在某个记录。这是我的代码示例:using(SqlConnectionsqlConnection=dbUtil.GetSqlConnection(dbUtil.GetConnectionStringByName("NonConnectionString"))){using(SqlCommandsqlCommand=newSqlCommand("SELECT*

c# - SqlCommand() ExecuteNonQuery() 截断命令文本

我正在构建自定义数据库部署实用程序,我需要读取包含sql脚本的文本文件并针对数据库执行它们。非常简单的东西,到目前为止还不错。但是我遇到了一个障碍,文件的内容被成功且完整地读取,但是一旦传递到SqlCommand然后使用SqlCommand.ExecuteNonQuery执行,只有部分脚本被执行。我启动了Profiler并确认我的代码没有通过所有脚本。privatevoidExecuteScript(stringcmd,SqlConnectionsqlConn,SqlTransactiontrans){SqlCommandsqlCmd=newSqlCommand(cmd,sqlConn

c# - 回滚后ExecuteNonQuery的返回值

假设我们有一个像这样的存储过程:BEGINTRANSACTIONUPDATEsometableSETaField=0WHEREanotherField=1;UPDATEsometableSETaField=1WHEREanotherField=2;ROLLBACKTRANSACTION;从C#我们有这样的东西:using(varconnection=newSqlConnection("connectionstring")){connection.Open();varcmd=connection.CreateCommand();cmd.CommandType=CommandType.St

c# - 为什么即使没有更新,ExecuteNonQuery 也会返回 1?

我有这样的查询:UPDATEmessagesSETUnread='N'WHEREid='6'为了读取受影响的行,我使用了ExecuteNonQuery()的值,但它始终返回1,即使没有任何更改也是如此。看到同样的问题here.这是错误还是这种行为正常? 最佳答案 要使ExecuteNonQuery返回1,必须一条记录WHEREid='6'。现在,如果您只想更新值不同的行,则更改查询:UPDATEmessagesSETUnread='N'WHEREid='6'ANDUnread'N'如果您要运行该查询并且Unread的值已经是'N',

c# - 单个 ODBC ExecuteNonQuery (C#) 中的多个插入语句

我将多行插入数据库,并将它们连接在一起以尝试提高性能。我得到一个ODBCException告诉我我的SQL语法是错误的。但是当我在mysql命令行客户端中尝试它时,它工作得很好..我运行了一个简化的测试来描述这个过程。命令行客户端:mysql>createtabletest(`id`int,`name`text);QueryOK,0rowsaffected(0.05sec)mysql>INSERTINTOtest(id,name)VALUES('1','Foo');INSERTINTOtest(id,name)VALUES('2','bar');QueryOK,1rowaffected

c# - SQLite .NET 插入 ExecuteNonQuery 返回 1

SQL:CREATETABLEmain.LogRecord(IdINTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,TimeStampDATETIMENOTNULL,TypeTEXTNOTNULL,SeverityTEXTNOTNULL,MessageTEXTNOTNULL,OriginTEXTNOTNULL)INSERTINTOLogRecord(TimeStamp,Type,Severity,Message,Origins)VALUES(@timestamp,@type,@severity,@message,@origin)C#伪代码:SQLiteComma