问题出在OleDb和SqlClient 两种Sql参数占位符语法不一样,SqlClient用@代表参数string str = "select * from user where UserID=@UserID"而在OleDb中应写成string str = "select * from user where UserID=?" 然后在OleDbParameter传参中new OleDbParameter[] { new OleDbParameter("@P1", OleDbType.Integer, 4) };"@P1"代替的就是Sql语句中的参数...