I have ten textboxes in my winform, and i need to save the text typed in these textboxes into 10 columns of a sql database table. so, for this shall i write :
INSERT INTO item (c1,c2,c3...,c10) values (@a,@b....@j)
cmd.Parameters.Add("@a",SqlDbType.Varchar)
cmd.Parameteres["@a"].Value=textbox1.Text;
cmd.Parameters.Add("@b",SqlDbType.Varchar)
cmd.Parameteres["@b"].Value=textbox2.Text;.
.
.
.
.
cmd.Parameters.Add("@j",SqlDbType.Varchar)
cmd.Parameteres["@j"].Value=textbox10.Text;
OR ten separate queries for each textbox:
INSERT INTO item (c1) values (@a)
cmd.Parameters.Add("@a",SqlDbType.Varchar)
cmd.Parameteres["@a"].Value=textbox1.Text;
INSERT INTO item (c2) values (@b)
cmd.Parameters.Add("@b",SqlDbType.Varchar)
cmd.Parameteres["@b"].Value=textbox2.Text;.
.
.
INSERT INTO item (c10) values (@j)
cmd.Parameters.Add("@j",SqlDbType.Varchar)
cmd.Parameteres["@j"].Value=textbox10.Text;
or, please suggest an efficient code.
How to add multiple parameters to cmd in a single statement? is it possible?
You can use an extension method, like this:
Then call it like this:
I've used that in a few projects with no problems.
The 2 'solutions' that you suggest in your question, are semantically different. Which one you should use, depends on your table-layout.
The first solution inserts one record in the table, the second insert statement inserts one record (row) for every value (textbox).
Difficult to give a good answer here, since we do not know what you're going to save in that table, and thus , we cannot say how you should save it (how you save it, is inherintly dependent on the way you should call the SQL insert statement).
I think you can use Parameters.AddWithValue() method.
You could use a function like this:
Not the best one probably, but functional. Call link this:
Or you can use an extension like suggested from @Matt Hamilton to add this function in DBCommand class.