日期:2014-05-19  浏览次数:21020 次

怎么用oledbCommand操作access数据库??
我做的C#的winform版的系统,在连接数据库的时候还好,没有问题,但是在操作数据库时候,oledbCommand的ExecuteNonQuery()方法好像没有执行,我的数据库没有改变,但我发现只是在debug中的数据库副本里做了改动,再次运行的时候就什么也没有变化,请高手指点!!!!

------解决方案--------------------
但我发现只是在debug中的数据库副本里做了改动
========
不知道说什么


int affectedRecords = MyCommand.ExecuteNonQuery(); // 返回影响的行数
------解决方案--------------------
string path=Directory.GetCurrentDirectory().ToString()+@ "\ ";
string DBFile = "test.mdb ";
this.OLEDBC.Close();
this.OLEDBC.ConnectionString = @ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + path + DBFile;

if (!File.Exists(path +DBFile))
{
MessageBox.Show( "数据库文件不存在! ");
return;
}

try
{
this.OLEDBC.Open();
this.oleDBA.SelectCommand.Connection = this.OLEDBC;
String Querystr = @ "select * from temp where(name like @name) ";
this.oleDBA.SelectCommand.CommandText = Querystr;

int mark = 0;
try
{
mark = int.Parse(textBoxMark.Text);
}
catch (Exception eMessage)
{
mark = 0;
}
this.oleDBA.SelectCommand.Parameters.Clear();
this.oleDBA.SelectCommand.Parameters.AddWithValue( "@name ", "% " + this.textBoxName.Text + "% ");
this.oleDBA.SelectCommand.ExecuteNonQuery();
DataTable dt = new DataTable();
this.oleDBA.Fill(dt);
this.DGVSelect.DataSource = dt;
}
catch (Exception eMessage)
{
//MessageBox.Show(eMessage.ToString());
}
finally
{
this.OLEDBC.Close();
}
}
按这个方法试一下,看能不能查到结果,ExecuteNonQuery()执行select语句一样能返回结果,如果换成ExecuteReader()则需要手动把DataReader()转换为DataTable然后再绑定到DataGridView,最后一定要关闭DataReader()
------解决方案--------------------
哎呀,你连接的根本就不是一个数据库,你是把数据添加进项目里面了吧,修改的数据当然是DEBUG下面的
------解决方案--------------------
数据库路径不建议写死

而应该写成类似

Application.StartupPath+@ "\DB\test.mdb ";//当前程序运行目录下的DB文件夹下test.mdb

由于你debug模式时 Application.StartupPath 就是debug路径 所以会修改debug下的DB文件夹

而当你如果直接运行exe时 那么他就会去找相应exe目录下的DB文件夹了