发现了MSDN的两个错误 不知道大家的看法如何

发现了MSDN的两个错误 不知道大家的看法如何

发现了MSDN的两个错误 不知道大家的看法如何

1. 关于Parameter, MSDN上说:"对于 OleDbDataAdapter 对象和 OdbcDataAdapter 对象,必须使用问号 (?) 占位符来标识参数。对于 SqlDataAdapter 对象,必须使用命名参数。"  不过我写了以下代码 (用命名参数在OleDbDataAdapter中使用)是可以通过的,难道"必须使用问号" ? 不解:(

OleDbConnection conn= new OleDbConnection(this.GetConnString());
   conn.Open();
   string sql= "select * from Forum_Class where isdel=@isdel";
   OleDbDataAdapter adapter= new OleDbDataAdapter();
   OleDbCommand comm= new OleDbCommand();
   comm.CommandText= sql;
   comm.Connection= conn;
   comm.Parameters.Add("@isdel","1");
   adapter.SelectCommand= comm;
   DataSet ds= new DataSet();
   adapter.Fill(ds,"myTable");
   conn.Close();

   this.Label1.Text= ds.Tables[0].Rows.Count.ToString();

2. 对于参数的类型 MSDN说:"可以通过将 Parameter 对象的 DbType 属性指定为特定的 System.Data.DbType,以一般的方式来指定 Parameter 的类型。此外,ADO.NET 将从 Parameter 对象的 DbType 推断 Parameter 的 .NET Framework 数据提供程序类型"  但是我按照MSDN的说法写下面的代码是无法通过的. :(

OleDbConnection conn= new OleDbConnection(this.GetConnString());
   conn.Open();
   string sql= "select * from Forum_Class where isdel=@isdel";
   OleDbCommand comm= new OleDbCommand();
   comm.CommandText= sql;
   comm.Connection= conn;
   comm.Parameters.Add("@isdel",System.Data.DbType.String,20); //M处
   comm.Parameters["@isdel"].Value= "1";
   DataSet ds= new DataSet();
   adapter.Fill(ds,"myTable");
   this.Label1.Text= comm.ExecuteScalar().ToString();
   conn.Close();

编译器提醒说在M处,无法从“System.Data.DbType”转换为“System.Data.OleDb.OleDbType”

有人对以上两点,有好的解释么? 谢谢

posted on 2004-06-14 17:20  追忆似水年华  阅读(1043)  评论(2编辑  收藏  举报

导航