运行 SQL Server 查询时出现 C# 异常错误

唐斯利波

我正在构建简单的库应用程序。我正在使用 C# 和 SQL Server 2017。

在运行一个函数来检查这本书是否已经存在时,我在“名称”附近收到一个错误。

        public bool DoesItExist()
        {
            mainSet mset = new mainSet();
            string query = "SELECT * FROM [Library].[dbo].[ViewBook] WHERE " +
                "Title = '" + this.title + "' AND " +
                "DateOfFirstRelease = " + this.release_date + " AND " +
                "Name = '" + this.author_name + "' AND " +
                "2Name= '" + this.author_2name + "' AND " +
                "Surname = '" + this.author_surname + "' AND " +
                "Category = '" + this.category + "' AND " +
                "Publishing = '" + this.Publishing+ "' ";

            SqlConnection cnn = new SqlConnection(mset.dataBaseConect);
            SqlCommand cmd = new SqlCommand(query, cnn);
            cnn.Open();
            SqlDataReader reader = cmd.ExecuteReader();  

            if (reader.HasRows) return true;
            else return false;
        }

都是“这个”。是“标题”类中的参数。

所有参数都是类型:字符串,除了“DateOfRelease”是类型:int

[ViewBook] 是 [Library] 数据库中的一个视图。

我得到的错误:

System.Data.SqlClient.SqlException: 

An expression of non-boolean type specified in a context where a condition is expected, near 'Name'.”

cmd 查询示例:

"SELECT * FROM [Library].[dbo].[ViewBook] WHERE Title = 'Book Name' AND DateOfFirstRelease = 2004 AND Name = 'George' AND 2Name= '' AND Surname = 'Martin' AND Category = 'Economy' AND Publishing = 'PublishingTest' "
拉努

这个答案有一个很大的警告;我不是 ac# 编码员,所以我没有测试过。我很少接近 C#,只有当我这样做是因为我正在协助我们的开发人员处理他们的 SQL Server 需求(因为我是一名 DBA/SQL 开发人员)。我做了什么?我使用文档(SqlCommand.Parameters Property & SqlDbType Enum)编写了一个正确参数化的查询,该查询应该可以工作(我添加了一条评论,说明为什么我认为您的查询也失败了):

string query = "SELECT * FROM Library.dbo.ViewBook" + 
                " WHERE Title = @Title" + 
                " AND DateOfFirstRelease = @ReleaseDate" + 
                " AND [Name] = @AuthorName" + //Name is a keyword, so I prefer to quote it
                " AND [2Name] = @AuthorName2" + //Quoted as a column that begins with a number needs to be delimit identified
                " AND Surname = @Surname" + 
                " AND Category = @Category" + 
                " AND Publishing = @Publishing;";

    using (SqlConnection cnn = new SqlConnection(mset.dataBaseConect))
    {
        SqlCommand cmd = new SqlCommand(query, cnn);

        cmd.Parameters.Add("@Title",SqlDbType,VarChar,50); //Guessed datatype
        cmd.Parameters["@Title"].Value = this.title;

        cmd.Parameters.Add("@ReleaseDate",SqlDbType.Date); //Guessed datatype
        cmd.Parameters["@ReleaseDate"].Value = this.release_date;

        cmd.Parameters.Add("@AuthorName",SqlDbType.VarChar,50); //Guessed datatype
        cmd.Parameters["@AuthorName"].Value = this.author_name;

        cmd.Parameters.Add("@AuthorName2",SqlDbType.VarChar,50); //Guessed datatype
        cmd.Parameters["@AuthorName2"].Value = this.author_2name;

        cmd.Parameters.Add("@Surname",SqlDbType.VarChar,50); //Guessed datatype
        cmd.Parameters["@Surname"].Value = this.author_surname;

        cmd.Parameters.Add("@Category",SqlDbType.VarChar,50); //Guessed datatype
        cmd.Parameters["@Category"].Value = this.category;

        cmd.Parameters.Add("@Publishing",SqlDbType.VarChar,50); //Guessed datatype
        cmd.Parameters["@Publishing"].Value = this.Publishing;

        cnn.Open();
        SqlDataReader reader = cmd.ExecuteReader();  
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询SQL Server表时出现Spark SQL错误

来自分类Dev

我正在使用SQL Server 2012,并且工作正常。但是SQL Server 2008却无法正常工作。当我运行查询时,出现此错误:

来自分类Dev

使用C#运行SQL Server查询

来自分类Dev

从C#对SQL Server执行插入查询时发生异常

来自分类Dev

通过 Excel VBA 从 SQL Server 获取数据时出现运行时错误

来自分类Dev

在ireport Designer中运行SQL查询时出现无效的标识符错误

来自分类Dev

运行联接查询时出现mysql错误

来自分类Dev

运行mysql查询时出现1093错误

来自分类Dev

查询语句SQL Server出现错误

来自分类Dev

MySQL C API:从其他线程运行查询时出现分段错误

来自分类Dev

MySQL C API:从其他线程运行查询时出现分段错误

来自分类Dev

查询SQL Server 2012数据库时出现初始错误

来自分类Dev

为什么在尝试连接 SQL Server 查询中的表时出现错误

来自分类Dev

SQL Server查询空运行

来自分类Dev

为什么在运行基本的Django查询时出现int()异常错误的无效文字?

来自分类Dev

运行C ++项目时出现Clion错误

来自分类Dev

使用蜂巢上下文运行查询时出现Spark-hive异常:org.apache.spark.sql.AnalysisException

来自分类Dev

为什么在C#中运行sql服务器脚本时出现错误?

来自分类Dev

转换日期时出现SQL Server错误

来自分类Dev

尝试连接时出现SQL Server错误

来自分类Dev

查询在SQL Server中引发异常,但在MySQL中不引发异常(外部参考错误)

来自分类Dev

使用Spring @Query运行JPQL查询时出现异常

来自分类Dev

在SQL Server 2008中运行查询时,列名无效

来自分类Dev

由于出现错误,SQL查询无法在phpMyAdmin上运行

来自分类Dev

在 MSSQL 中运行此 sql 查询时出现问题

来自分类Dev

SQL Server查询异常行为

来自分类Dev

异常的SQL Server查询结果

来自分类Dev

从C#运行时,SQL查询超时,在SQL Server Management Studio中快速

来自分类Dev

SQL Server:查询错误

Related 相关文章

  1. 1

    查询SQL Server表时出现Spark SQL错误

  2. 2

    我正在使用SQL Server 2012,并且工作正常。但是SQL Server 2008却无法正常工作。当我运行查询时,出现此错误:

  3. 3

    使用C#运行SQL Server查询

  4. 4

    从C#对SQL Server执行插入查询时发生异常

  5. 5

    通过 Excel VBA 从 SQL Server 获取数据时出现运行时错误

  6. 6

    在ireport Designer中运行SQL查询时出现无效的标识符错误

  7. 7

    运行联接查询时出现mysql错误

  8. 8

    运行mysql查询时出现1093错误

  9. 9

    查询语句SQL Server出现错误

  10. 10

    MySQL C API:从其他线程运行查询时出现分段错误

  11. 11

    MySQL C API:从其他线程运行查询时出现分段错误

  12. 12

    查询SQL Server 2012数据库时出现初始错误

  13. 13

    为什么在尝试连接 SQL Server 查询中的表时出现错误

  14. 14

    SQL Server查询空运行

  15. 15

    为什么在运行基本的Django查询时出现int()异常错误的无效文字?

  16. 16

    运行C ++项目时出现Clion错误

  17. 17

    使用蜂巢上下文运行查询时出现Spark-hive异常:org.apache.spark.sql.AnalysisException

  18. 18

    为什么在C#中运行sql服务器脚本时出现错误?

  19. 19

    转换日期时出现SQL Server错误

  20. 20

    尝试连接时出现SQL Server错误

  21. 21

    查询在SQL Server中引发异常,但在MySQL中不引发异常(外部参考错误)

  22. 22

    使用Spring @Query运行JPQL查询时出现异常

  23. 23

    在SQL Server 2008中运行查询时,列名无效

  24. 24

    由于出现错误,SQL查询无法在phpMyAdmin上运行

  25. 25

    在 MSSQL 中运行此 sql 查询时出现问题

  26. 26

    SQL Server查询异常行为

  27. 27

    异常的SQL Server查询结果

  28. 28

    从C#运行时,SQL查询超时,在SQL Server Management Studio中快速

  29. 29

    SQL Server:查询错误

热门标签

归档