12

I have the following table, abridged:

CREATE TABLE [dbo].[TERMINAL] (
    [TERM_CODEID]    SMALLINT     NOT NULL,
    [TERM_ACTIVE]    SMALLINT     NOT NULL,
    [TERM_NAME]      VARCHAR (30) NOT NULL,
    [TERM_SLA]       CHAR (8)     NOT NULL,
    [TERM_SERIAL]    VARCHAR (8)  NULL,
    [TERM_VERSION]   VARCHAR (8)  NULL,

    [TERM_STATUS]    INT          NULL,
)

When I try the following Dapper code - and I'm a complete Dapper novice, found it yesterday - I get an error:

using (var conn = new SqlConnection("data source=ourServer; initial catalog=ourDb;user id=sa;password=ourPassword;"))
{
    conn.Open();
    var terms = conn.Query<Terminal>("select * from TERMINAL");
}

The error is:

Error parsing column 3 (TERM_SLA=01010B01 - String)

I can see no reason why anything should even have to 'parse' a string, never mind experience an error while doing so. What could be causing this>

1
  • Do your POCO property types match the columns of your datastore? Commented Jun 11, 2013 at 7:19

3 Answers 3

15

Dapper expects the .NET data type to be exactly the same as in your database. Term_Sla needs to be of type String.

Sign up to request clarification or add additional context in comments.

Comments

1

Here is my experience. i hope this may help, someone:

I had the same error, and .net type was matching the Sql data type; except that some data was null. So make sure that your sql data is not nullable, otherwise adapt your .net property type accordingly.

Comments

0

In my case, there was an enum field and it was not listed in SQL records.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.