Oracle查询数据出错了
错误信息: ORA-01008: 并非所有变量都已关联--------------------编程问答-------------------- string sql = "select * from userinfo where US_DLM=':DLM' AND US_MM=':MM'";
public UserInfoModel Login(string dlm, string mm)
{
string sql = "select * from userinfo where US_DLM=:DLM AND US_MM=:MM";
UserInfoModel userInfo = new UserInfoModel();
using (OracleConnection conn = new OracleConnection(connString))
{
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
OracleParameter[] parameters = {
new OracleParameter(":DLM", OracleType.VarChar,50),
new OracleParameter(":MM", OracleType.VarChar,200)};
parameters[0].Value = dlm;
parameters[1].Value = mm;
conn.Open();
OracleDataReader reader = cmd.ExecuteReader(); //执行到这里就出错了
if (reader.Read())
{
userInfo.US_XTBH = reader["US_XTBH"].ToString();
userInfo.US_DLM = reader["US_DLM"].ToString();
userInfo.US_MM = reader["US_MM"].ToString();
userInfo.US_RYBH = reader["US_RYBH"].ToString();
userInfo.US_XM = reader["US_XM"].ToString();
userInfo.US_DW = reader["US_DW"].ToString();
userInfo.US_YDDH = Convert.ToInt32(reader["US_YDDH"]);
userInfo.US_YX = reader["US_YX"].ToString();
userInfo.US_ZW = reader["US_ZW"].ToString();
userInfo.US_GS = reader["US_GS"].ToString();
userInfo.US_BM = reader["US_BM"].ToString();
userInfo.US_DH = reader["US_DH"].ToString();
userInfo.US_BZ = reader["US_BZ"].ToString();
}
reader.Close();
conn.Close();
}
return userInfo;
}
--------------------编程问答-------------------- new OracleParameter(":DLM", OracleType.VarChar,50),
new OracleParameter(":MM", OracleType.VarChar,200)};
这两句中的参数名不要带冒号了 --------------------编程问答--------------------
改成这样,执行过去了。
但执行到这里 if (reader.Read())
直接跳出去了。没有进if,晕,条件都是正确的,结果没有查到数据
--------------------编程问答-------------------- 实在不行就用字符串拼接吧。
--------------------编程问答-------------------- 查出来,ok
少写了一段代码
foreach (object obj in parameters)
{
cmd.Parameters.Add((OracleParameter)obj);
} --------------------编程问答--------------------
补充:.NET技术 , ASP.NET