-4

可能重复:
带参数的 C# 存储过程

我试图从传递多个参数的 c# 调用存储过程,但无法使其正常工作。这是我到目前为止所拥有的。

cmd = new SqlCommand();
cmd = dbConn.CreateCommand();
cmd.CommandText = "inserttoTable @size = " + size + ", @brand = " + brand + ", @manu = " + manu + ", @t= " + id.ToString();
cmd.ExecuteNonQuery();

尺寸、品牌和manu 都是字符串。inserttoTable 是存储过程。

我收到以下错误:System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'TO'.

4

3 回答 3

2

如果您使用参数并将命令类型更改为存储过程,您会遇到更少的问题:

cmd = new SqlCommand();
cmd = dbConn.CreateCommand();
cmd.CommandText = "inserttoTable";
cmd.CommandType = System.Data.CommandType.StoredProcedure;

cmd.Parameters.Add(new SqlParameter("@size", size));
cmd.Parameters.Add(new SqlParameter("@brand", brand));
cmd.Parameters.Add(new SqlParameter("@manu", manu));
cmd.Parameters.Add(new SqlParameter("@t", id.ToString()));

cmd.ExecuteNonQuery();
于 2012-10-02T16:27:30.997 回答
2

看看这个:

SqlCommand.Parameters 属性

于 2012-10-02T14:42:56.657 回答
0

虽然这不是调用存储过程的最佳方法,但如果在字符串参数周围添加单引号,应该没问题。

cmd = new SqlCommand(); 
cmd = dbConn.CreateCommand(); 
cmd.CommandText = "inserttoTable @size = '" + size + "', @brand = '" + brand + "', @manu = '" + manu + "', @t= '" + id.ToString() + "'"; 
cmd.ExecuteNonQuery(); 

这段代码非常过时,10 年前就已经被弃用了。

于 2012-10-02T15:38:20.887 回答