Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

c# : passing dataTable to stored procedure: column order issue

I have a stored procedure which accepts a User defined table type called SeasonTable which looks like this:

SeasonTable

    [SeasonId] [int] NOT NULL,
    [SeasonName] [varchar](50) NOT NULL,
    [Month] [int] NULL, 
    [IsDeleted] [bit] NOT NULL

Stored procedure is like as shown below

CREATE PROCEDURE [dbo].[udpTest] 
(
    @STable dbo.SeasonTable READONLY
)   
AS
BEGIN
SELECT [SeasonName] as SeasonName,[SeasonId],[Month],[IsDeleted] 
    FROM @AdminBillingSeasonsTable
END

When I call this from C# application

private DataTable TestCreateDataTable()
{
            DataTable dt = new DataTable();

            dt.Columns.Add("SeasonName", typeof(string));
            dt.Columns.Add("SeasonId", typeof(int));                
            dt.Columns.Add("Month", typeof(int));
            dt.Columns.Add("IsDeleted", typeof(bool));
            dt.Rows.Add("season1",1, 4,  false);
            dt.Rows.Add("season2",2, 9, false);
            dt.Rows.Add("season3",3, 11,  false);
            return dt;
}

When I use the above table as param to SP from C# app it is throwing error:

unable to convert "season1" to int.

Does this mean the column order in C# app should be same as the column order in SQL?

Any help regarding this is highly appreciated.

Thanks in advance

like image 484
sandeep Avatar asked Jun 23 '12 07:06

sandeep


People also ask

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr. Stroustroupe.

Is C language easy?

C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.

Is C programming hard?

C is more difficult to learn than JavaScript, but it's a valuable skill to have because most programming languages are actually implemented in C. This is because C is a “machine-level” language. So learning it will teach you how a computer works and will actually make learning new languages in the future easier.


1 Answers

Try Switching your column sequence something like this

 private DataTable TestCreateDataTable()
            {
                DataTable dt = new DataTable();

                dt.Columns.Add("SeasonId", typeof(int));     // seasonId and then
                dt.Columns.Add("SeasonName", typeof(string)); // seasonName
                dt.Columns.Add("Month", typeof(int));
                dt.Columns.Add("IsDeleted", typeof(bool));
                dt.Rows.Add("season1",1, 4,  false);
                dt.Rows.Add("season2",2, 9, false);
                dt.Rows.Add("season3",3, 11,  false);
                return dt;
            }
like image 133
yogi Avatar answered Oct 20 '22 18:10

yogi