c#字符串中拼接参数该如何处理? 10

在C#中执行如下字符串形式的数据库插入命令"insertinto表1(字段1,字段2,字段3)values(值1,值2,值3);"现在想把字段与字段值用参数来代替,即:字... 在C#中执行如下字符串形式的数据库插入命令
"insert into 表1 (字段1, 字段2, 字段3) values (值1,值2,值3);"
现在想把字段与字段值用参数来代替,即:
字段1——参数1
字段2——参数2
字段3——参数3
……
请问该 如何处理 这些参数呢?
展开
 我来答
zhuxinjun1982
2012-04-12 · 知道合伙人互联网行家
zhuxinjun1982
知道合伙人互联网行家
采纳数:2145 获赞数:8328
毕业于上海行健职业学院,大专学历;2007~2009在北大青鸟进修网络编程课目。现任网络主管,平时爱好上网。

向TA提问 私信TA
展开全部
首先你要先定义个带参数的方法:
publice void test(string a,int b,string c)//a,b,c为传进来的3个参数,参数类型由你自己按需求定义
{
"insert into 表1 (字段1, 字段2, 字段3) values (a,b,c);"//这里的值用参数替代
}
这个方法我定义的是void,说明无返回值,如果你需要返回值,比如要返回个整形,那就将void改成int即可
26779260
2012-04-13 · TA获得超过229个赞
知道答主
回答量:124
采纳率:0%
帮助的人:139万
展开全部
SqlConnection conn = new SqlConnection("这是连接字符串");//实例化连接资源
//抛砖引玉吧。自定义方法,第一个是值1,第二个是值1的值,第三个是值2,第四个是值2的值。没时间想了,要下班了,这里处理得不好,参数太长了。写数据库操作命令的时候要注意下格式。不过你可以把数据类型和数据长度全部传进去。可以考虑把这么多参数封装到一个实体类中,然后传参的时候传这个实体类列表进去。方法里面用循环取这个实体类
public void test(string paraname1,string paravalue1,string paraname2,string paravalue2)
{
conn.Open();
SqlCommand cmd = new SqlCommand("这是插入数据库指令", conn);
cmd.Parameters.Add(paraname1, SqlDbType.Char, 50).Value = paravalue1;
cmd.Parameters.Add(paraname2, SqlDbType.VarChar, 100).Value = paravalue2;
cmd.ExecuteNonQuery();
conn.Close();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
swr71999
2012-04-16
知道答主
回答量:22
采纳率:0%
帮助的人:11万
展开全部
public int add(object obj1, object obj2, object obj3)
{
/*
* 或者新建一个参数类
* public class ObjAttr
* {
* //参数类型自己改
* private object obj1;
*
* public object Obj1
* {
* get { return obj1; }
* set { obj1 = value; }
* }
*
* //other args ...
* }
*
* 方法声明改为public int add(ObjAttr objAttr)
* 参数调用 改成 new SqlParameter("@par1",objAttr.Obj1),
*/

string sqlConString = "data source...";
using (SqlConnection con = new SqlConnection(sqlConString))
{
string sql = "insert into 表1 (字段1, 字段2, 字段3) values (@par1,@par2,@par3);
SqlParameter[] pars = new[]
{
new SqlParameter("@par1",obj1),
new SqlParameter("@par2",obj2),
new SqlParameter("@par3",obj3)
};
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.Parameters.AddRange(pars);
int val = cmd.ExecuteNonQuery();
return val;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyanfei_bd
2012-04-23
知道答主
回答量:10
采纳率:0%
帮助的人:1.6万
展开全部
如果传进来这三个参数(参数1,参数二,参数三),那么你的sql语句就要写成
"insert into 表1 (字段1, 字段2, 字段3) values (‘“+参数1+”’,'"+参数2+"','"+参数3+"')";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jarhf
2012-04-13 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1017万
展开全部
拼接方法 wisecn 已经给出了, 不过 非常不建议SQL语句采用拼接的方式。
你应该使用 SqlParameter来赋值参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式