Enterprise Library 4的DataAccess Block连接ACCESS数据库支持DbCommand和AddInParameter()ConnectString是:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="E:\科研相关\Access AirborneEquipmentProgramDevelopment\AirDB.mdb";Persist Security Info=False
string sqlstr = " update [tblDepartment] SET"
+ " [TelOnDuty] = @TelOnDuty,"
+ " [Airport] = @Airport, "
+ "[OpenName] = @OpenName, "
+ " [PostcodeDptmt] = @PostcodeDptmt, "
+ " [AddressDptmt] = @AddressDptmt "
+ " where [DepartmentPath] = @DepartmentPath ";
Database db = DatabaseFactory.CreateDatabase("AirMDBConnectionString");
DbCommand dbCommand = db.GetSqlStringCommand(sqlstr); db.AddInParameter(dbCommand, "DepartmentPath", DbType.String, this.DepartmentPath);
db.AddInParameter(dbCommand, "TelOnDuty", DbType.String, this.TelOnDuty);
db.AddInParameter(dbCommand, "Airport", DbType.String, this.Airport);
db.AddInParameter(dbCommand, "OpenName", DbType.String, this.OpenName);
db.AddInParameter(dbCommand, "PostcodeDptmt", DbType.String, this.PostcodeDptmt);
db.AddInParameter(dbCommand, "AddressDptmt", DbType.String, this.AddressDptmt);
db.ExecuteNonQuery(dbCommand);
执行起来既不报错,数据库内容也没有修改。而我原来用的是sqlServer2005的数据库,是可以实现数据库内容修改的。只是把代码中的Database db = DatabaseFactory.CreateDatabase("AirMDBConnectionString");修改了。是否Access的mdb数据库不支持这种添加参数操作。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="E:\科研相关\Access AirborneEquipmentProgramDevelopment\AirDB.mdb";Persist Security Info=False
string sqlstr = " update [tblDepartment] SET"
+ " [TelOnDuty] = @TelOnDuty,"
+ " [Airport] = @Airport, "
+ "[OpenName] = @OpenName, "
+ " [PostcodeDptmt] = @PostcodeDptmt, "
+ " [AddressDptmt] = @AddressDptmt "
+ " where [DepartmentPath] = @DepartmentPath ";
Database db = DatabaseFactory.CreateDatabase("AirMDBConnectionString");
DbCommand dbCommand = db.GetSqlStringCommand(sqlstr); db.AddInParameter(dbCommand, "DepartmentPath", DbType.String, this.DepartmentPath);
db.AddInParameter(dbCommand, "TelOnDuty", DbType.String, this.TelOnDuty);
db.AddInParameter(dbCommand, "Airport", DbType.String, this.Airport);
db.AddInParameter(dbCommand, "OpenName", DbType.String, this.OpenName);
db.AddInParameter(dbCommand, "PostcodeDptmt", DbType.String, this.PostcodeDptmt);
db.AddInParameter(dbCommand, "AddressDptmt", DbType.String, this.AddressDptmt);
db.ExecuteNonQuery(dbCommand);
执行起来既不报错,数据库内容也没有修改。而我原来用的是sqlServer2005的数据库,是可以实现数据库内容修改的。只是把代码中的Database db = DatabaseFactory.CreateDatabase("AirMDBConnectionString");修改了。是否Access的mdb数据库不支持这种添加参数操作。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货