简体   繁体   English

具有数据库字符的SQLException

[英]SQLException With Character from Database

I have data in a table: 我在表中有数据:

CodeID    ColOne          ColTwo
---------------------------------------
1         DATAONE         DATAONE
2         DATATWO-Test    DATA-TEST1

Here is my code: 这是我的代码:

public static Codes [] Fetch(IDataProxy proxy, string whereClause, params FetchParameter [] parameters)
{
    List<Codes> list = new List<Codes>();
    using(IDbCommand cmd = proxy.Connection.CreateCommand())
    {
        cmd.CommandText = "SELECT [CodeID],[ColOne],[ColTwo] FROM [Codes]";
        using(IDataReader reader = cmd.ExecuteReader()) {
            while(reader.Read()) {
                list.Add(new Codes(reader));
            }
        }
    }
    return list.ToArray();
}

When I retrive the second result, I get an error message on Line 7 at "cmd.ExecuteReader()". 当我获取第二个结果时,我在第7行的“ cmd.ExecuteReader()”处收到一条错误消息。 The error message is as follows: 错误消息如下:

Unclosed quotation mark after the character string 'DATATWO'. Incorrect syntax near 'DATATWO'.

What am I doing wrong? 我究竟做错了什么?

Thank you for all your help! 谢谢你的帮助!

Edit : 编辑

Here is Codes: 这是代码:

internal Codes(IDataReader reader)
{
   this.CodeID = reader.GetInt32(0);
   this.ColOne = reader.GetString(1);
   this.ColTwo = reader.GetString(2);
   this.DataState = System.Data.DataRowState.Unchanged;
}

I overlooked something, in my example, I didn't include my "where" clause and the select statement was: where ColOne = 'DATATWO-Test . 我忽略了一些东西,在我的示例中,我没有包括“ where”子句,而select语句是: where ColOne = 'DATATWO-Test I didn't have the closing ' after the value. 值结束后我没有结账。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM