asp.net + oracle 查找数据

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:54:55
string strsql = "select * from t_bas_user where usercode = :id";
OleDbCommand cm = new OleDbCommand(strsql, conn);

//cm.Parameters.Add(new OleDbParameter("@id", OleDbType.VarChar, 50));
//cm.Parameters["@id"].Value = Tbx_userid.Text;

OleDbParameter param = new OleDbParameter();
param.ParameterName = "id";
param.Value = Tbx_userid.Text;
cm.Parameters.Add(param);

conn.Open();
OleDbDataReader dr=cm.ExecuteReader();
Dgd_userinformation.DataSource=dr;
Dgd_userinformation.DataBind();
conn.Close();

异常详细信息: System.Data.OleDb.OleDbException: ORA-01008: 并非所有变量都已绑定
请问是什么原因?

string strsql = "select * from t_bas_user where usercode = :id";

看上去,你是想传一个值给"usercode",不知道你为什么要用"OleDbParameter"

完全可以把值直接连接到sql语句里:
string strsql = "select * from t_bas_user where usercode ='" & Tbx_userid.Text & "'";

这样就可以!

OleDbParameter:一般在要调用有参数的存储过程才使用。

看你的代码是一个很简单的数据连接抽出过程,看下msdn吧。

conn.Open();
string strsql = "select * from t_bas_user where usercode = '" + Tbx_userid.Text + "'";
OleDbCommand cm = new OleDbCommand(strsql, conn);
OleDbDataReader dr=cm.ExecuteReader();
Dgd_userinformation.DataSource=dr;
Dgd_userinformation.DataBind();
conn.Close();

sedfsderg