日期:2014-05-19  浏览次数:21885 次

无法将带 [] 的索引应用于“object”类型的表达式
十万火急!!!!!!!!!!!
为什么?会这样!Java就可以这样!更让我奇怪的是在程序中用for时,就可能用,
单个指定就不行!奇怪!
以下是代码:
这一部分是没有问题的!用new   Object[]{ "aaa ", "   "}测试过
public   static   OleDbDataReader   ExecuteQuery(string   sql,Object[]   sqlParams)
{
OleDbConnection   conn=connect();
OleDbCommand   cmd   =   new   OleDbCommand(sql,conn);
for(int   i=0;i <sqlParams.Length;i++)
{
cmd.Parameters.Add( " "+i,sqlParams[i]);
}
conn.Open();
OleDbDataReader   dr   =   cmd.ExecuteReader();
return   dr;
}
有问题:
string   sql   = "SELECT   *   FROM   blsp_user   where   YHMC=?   AND   YHMM=? ";
string   name=tbx_userId.Value.ToString();
string   pwd=tbx_pwd.Value.ToString();
Object   sqlParams   =   new   object[2];

sqlParams[0]=name;
sqlParams[1]=pwd;

OleDbDataReader   dr   =   NewSql.ExecuteQuery(sql,sqlParams);
提示:D:\admin\xtgl\login.aspx.cs(58):   无法将带   []   的索引应用于“object”类型的表达式

请各位高手指点!



------解决方案--------------------
Object sqlParams = new object[2];

sqlParams[0]=name;
sqlParams[1]=pwd;

这是什么意思?
如果是初始化一个object数组要这么定义:
Object[] sqlParams = new object[2];
而不能
Object sqlParams = new object[2];

即使这么做了,还是出错. 你为什么要把传入的参数赋值呢. 不明白你什么意思.