发现了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”
有人对以上两点,有好的解释么? 谢谢