使用SQLCommand,如何在其对象中添加多个参数,通过winform在SQL表中插入
我的Winform中有十个文本框,我需要将这些文本框中的文本保存到SQL数据库表的10列中。因此,为此,我要写:
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;
或每个文本框的十个单独的查询:
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;
或者,请建议有效的代码。
如何在一条语句中向cmd添加多个参数?是否可以?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用扩展方法,如下所示:
然后像这样调用它:
我已经在一些项目中使用了它,没有任何问题。
You can use an extension method, like this:
Then call it like this:
I've used that in a few projects with no problems.
我认为你可以使用 Parameters.AddWithValue()< /a> 方法。
I think you can use Parameters.AddWithValue() method.
您在问题中建议的两个“解决方案”在语义上是不同的。
您应该使用哪一种取决于您的表格布局。
第一个解决方案在表中插入一条记录,第二个插入语句为每个值(文本框)插入一条记录(行)。
在这里很难给出一个好的答案,因为我们不知道你要在该表中保存什么,因此,我们不能说你应该如何保存它(你如何保存它,本质上取决于你应该调用的方式SQL 插入语句)。
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).
您可以使用这样的函数:
可能不是最好的函数,但很实用。
调用链接:
或者您可以使用 @Matt Hamilton 建议的扩展在 DBCommand 类中添加此函数。
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.
还可以这样..
Can also be like this..