SqlString = "Select * From ReallyNet_Sys_AdminUser Where UserID=@IDKeyValue";OleDbCommand OleDbCommand_Load = new OleDbCommand(SqlString, new OleDbConnection (ConfigSetting.GetConnString()));
OleDbCommand_Load.CommandType =  CommandType.Text;// 参数设置
OleDbCommand_Load.Parameters.Add(new OleDbParameter("@IDKeyValue" , OleDbType.VarChar , 20));
OleDbCommand_Load.Parameters["@IDKeyValue"].Value = IDKeyValue;

dsCommand.SelectCommand = OleDbCommand_Load;
dsCommand.Fill(_reDataTable);以上这段程序数据联接Access数据库可以正常运行, 但如果是联接SQLSERVER数据库就会出错, 不知道是为什么.
错误信息:必须声明变量 '@IDKeyValue'。

解决方案 »

  1.   

    连接使用SQLserver有专门的命名空间.
    System.Data.SqlClient
    里面有专门的方法.
     OleDbCommand 可以操作ACCESS的.不可能操作SQLsERVER的.
      

  2.   

    那把SQLSERVER数据库的程序转成ACCESS程序里不是会很麻烦?
    有什么好的解决办法吗
      

  3.   

    建议楼主看点基础的书.当然最好的书是MSDN和.net Framework的文档资料.
    操作ACCESS和SQLSERVER使用的是不同的命名空间.
    如:
    OleDbCommand ----SqlDataCommand
    OleDbConnection ---SqlDataConnection
    是相对应的.
    -----------------------------------那把SQLSERVER数据库的程序转成ACCESS程序里不是会很麻烦?
    有什么好的解决办法吗
    应该有些麻烦的
    数据库从SQLSERVER中直接导出到ACCESS就可以了.
    程序中的数据访问类要由SQLSERVER转换成ACCESS,用手改写的,应该不是很麻烦.
      

  4.   

    连接使用SQLserver有专门的命名空间.
    System.Data.SqlClient
    里面有专门的方法.
     OleDbCommand 可以操作ACCESS的.不可能操作SQLsERVER的.
    ------------------------------------------
    楼主,对不起,我真是给你帮倒忙,反而害了你.
    System.Data.OleDb 可以操作sqlSever数据库的!只是效率方面差一些.