我试图从c#调用存储过程传递多个参数,但无法使其正常工作。这是我到目前为止所拥有的。
cmd = new SqlCommand();
cmd = dbConn.CreateCommand();
cmd.CommandText = "inserttoTable @size = " + size + ", @brand = " + brand + ", @manu = " + manu + ", @t= " + id.ToString();
cmd.ExecuteNonQuery();
尺寸,品牌和手册都是字符串。 inserttoTable是存储过程。
我收到以下错误:System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'TO'.
答案 0 :(得分:2)
答案 1 :(得分: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();
答案 2 :(得分:0)
虽然这不是调用存储过程的最佳方法,但如果在字符串参数周围添加单引号,则应该没问题。
cmd = new SqlCommand();
cmd = dbConn.CreateCommand();
cmd.CommandText = "inserttoTable @size = '" + size + "', @brand = '" + brand + "', @manu = '" + manu + "', @t= '" + id.ToString() + "'";
cmd.ExecuteNonQuery();
此代码已过时且已在10年前弃用。