我正在传递参数,如C#page,
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
cmd.CommandText = commandtype.storedprocedure;
cmd.Parameters.AddWithValue("?user", user)
cmd.Parameters.AddWithValue("?name", name);
关于mysql存储过程使用2参数进行记录存在查找
@id integer,
@name varchar(200)
BEGIN
IF EXISTS (SELECT * FROM usertable WHERE id = @id and mode =0 limit 1 )
THEN
UPDATE usertable SET name = name where id=@id and mode = 0;
ELSE
INSERT INTO usertable (name, mode)VALUES (@name`enter code here`,0);
END IF;
END
答案 0 :(得分:0)
另一种将变量发送到我已经使用过的存储过程中的方法没有问题:
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@name", SqlDbTpye.Varchar).Value = name;
我认为您可以按大小和类型指定变量:
SqlDbTpye.Varchar,200
但现在无法测试。
答案 1 :(得分:0)
您需要确保参数的前缀匹配。如果在存储过程中使用“@”,则需要在C#中使用“@”,而不是“?”。
const char* const