我对以下参数的绑定有一个问题。连接可以工作,因为我在没有使用参数的情况下进行了测试。但是,在执行之前,查询的值仍然使用'@userName‘而不是'jsmith’。
有什么问题吗?这不是绕过绑定的正确方法吗?
public static String GetFullName(String domainUser)
{
DataTable dT;
String fullName = "";
OracleConnection db = DatabaseAdapter.GetConn();
db.Open();
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM user_profile WHERE domain_user_name = '@userName'", db);
oraCommand.BindByName = true;
oraCommand.Parameters.Add(new OracleParameter("@userName", domainUser));
OracleDataReader oraReader = null;
oraReader = oraCommand.ExecuteReader();
if (oraReader.HasRows)
{
while (oraReader.Read())
{
fullName = oraReader.GetString(0);
}
}
else
{
return "No Rows Found";
}
oraReader.Close();
db.Close();
db.Dispose();
return fullName;
}编辑:我在参数字段名中添加了@,但仍然不能修复它。
发布于 2012-06-15 18:28:50
删除@username两边的单引号,对于oracle使用带参数名的:而不是@,如下所示:
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM sup_sys.user_profile
WHERE domain_user_name = :userName", db);
oraCommand.Parameters.Add(new OracleParameter("userName", domainUser));来源:Using Parameters
发布于 2013-11-09 20:30:28
Oracle的参数语法与Sql-Server不同。所以使用:而不是@
using(var con=new OracleConnection(connectionString))
{
con.open();
var sql = "insert into users values (:id,:name,:surname,:username)";
using(var cmd = new OracleCommand(sql,con)
{
OracleParameter[] parameters = new OracleParameter[] {
new OracleParameter("id",1234),
new OracleParameter("name","John"),
new OracleParameter("surname","Doe"),
new OracleParameter("username","johnd")
};
cmd.Parameters.AddRange(parameters);
cmd.ExecuteNonQuery();
}
}在OracleCommand中使用命名参数时,必须在参数名称前面加上冒号(:)。
http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oraclecommand.parameters.aspx
发布于 2012-10-11 21:34:26
你需要使用类似这样的东西:
OracleCommand oraCommand = new OracleCommand("SELECT fullname FROM sup_sys.user_profile
WHERE domain_user_name = :userName", db);更多信息可以在这篇MSDN文章中找到:http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oraclecommand.parameters%28v=vs.100%29.aspx
建议您使用字符,而不要使用@。
https://stackoverflow.com/questions/11048910
复制相似问题