c# - c# 中的 T-SQL 语句中的语法不正确

标签 c# sql sql-server database

我有以下代码:

USE [DB] INSERT INTO Extract2_EventLog VALUES (" + li.userId + ", '" + li.startTime.ToString() + "', '" + li.endTime.ToString() + "', '" + li.elapsedTime.ToString() + (li.actionType == ActionType.REPORT ? "', 'report')" : "', 'extract')', '" + status + "'");

当我运行它时,出现以下错误:

{"Incorrect syntax near ', '.\r\nUnclosed quotation mark after the character string ''."}

我看不出我做错了什么..有人吗?

最佳答案

伙计....从哪里开始......

首先,您应该使用接受参数(应用程序代码中的变量)的存储过程。其次,您的应用程序中应该有一个数据访问层,将数据库调用和用户界面分开。我怎么强调这有多重要以及您当前的方法有多糟糕。在你纠正它之前,你将永远与这样的问题作斗争。

但是要解决问题...您的错误是因为您的查询字符串格式错误。在将字符串发送到数据库之前使用调试工具查看该字符串,然后您应该能够快速确定它有什么问题。要排除故障,您始终可以将该字符串剪切并粘贴到 SSMS 中,在那里对其进行优化,然后对您的 C# 代码进行必要的更改。

关于c# - c# 中的 T-SQL 语句中的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347607/

相关文章:

c# - 使用 C# Windows 10 物联网核心将文件复制到 USB

c# - 是否有 "right"方法来抽象出我的代码?

sql - 在公共(public)列上连接两个数据框

sql - 删除SQL Server数据库中的所有数据

sql-server - 如何解决VS2013错误SQL71501 : Procedure X has an unresolved reference to Assembly Y?

c# - SMO:恢复到不同的数据库,为什么数据库为空?

c# - 如何使用 Roslyn 执行反射操作

mysql - SQL 非常简单的嵌套查询

php - 获取在单独的 MySQL 表中共享相同 ID 的行数

SQL 完全连接表的条件