gpt4 book ai didi

c# - OracleCommand SQL 参数绑定(bind)

转载 作者:IT王子 更新时间:2023-10-29 04:19:57 26 4
gpt4 key购买 nike

我对以下参数的绑定(bind)有疑问。连接有效,因为我在没有使用参数的情况下对其进行了测试。但是,执行前查询的值仍然使用“@userName”而不是“jsmith”。

问题是什么?这不是绕过绑定(bind)的正确方法吗?

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;
}

编辑:我在参数字段名称中添加了@,但它仍然没有修复它。

最佳答案

删除@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

关于c# - OracleCommand SQL 参数绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com