C# 修改.mdb数据库 select 是查数据的,你要用更新语句啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .mdb文件已经被修改了,然后在代码中查询还是没变 修改.mdb中表格的参数不就是更新了吗 select语句获得的DataTable 这个DataTable必须的再从数据库中查询填充。不然会是第一次 加载到内存中的数据。 我猜测可能内存还是读取的老数据,这是我的代码, string myConnectionString = global::Print.........string mySql = "select * from 票据控件参数 where.."OleDbConnection myConnection = new OleDbConnection(myConnectionString);myConnection.Open();DataTable myTable = new DataTable();OleDbDataAdapter myAdapter = new OleDbDataAdapter(mysql, myConnection);myAdapter.Fill(myTable);到这里看代码应该是重新填充,但是debug的table不是.mdb中更新的数据,郁闷 无意冒犯。只是我觉得这听起来太不可思议了。我觉得这是不可能的,要么就是你描述地不正确。我理解你的意思是说,如果你已经修改了数据库,然后再去查询,查找到的东西还是修改前的东西?对吗?如果我理解的正确,那么只能说明你查出来的东西和你修改的是不同的东西。另外如果你先查询了,填充了datatable然后再到企业管理器中手动修改数据库表,datatable是不会自动更新的把。不然它也太智能了。如果我的理解有误,请补充。 我是修改了.mdb数据库中的参数(确认已经修改),然后在代码中使用查询语句 你不要加WHERE试试看。把整表都查出来,然后再比对一下是否有改,我觉得你应该是漏了什么。 我断点后sql语句:select * from 票据控件参数 where 票据模板name ='XXX支票’是根据表格中的票据模板name来查询的结果,在数据库中也此对应项找到查询结果,但是就得到刚才的情况 你用相同的sql语句,在Access里跑一下,看看跟你程序读出来的是否一样。 使用sql server数据库查询后得到的结果就是更新后的数据 数据源 Data source= |DataDirectory|\\Data\\printerfinal.mdb;Persist Security Info=True不晓得啊,这里的DataDirectory是相对路径吗?应该标识到哪里? 你用绝对路径先试试。或者用Application.StartupPath。我是怀疑你ACCESS文件太多。你程序指向的那个和你手动修改的那个并不是同一个。 application startpath在哪里设,我用的vs2005 这是C#代码。反正你用绝对路径先试试。先别用那Applicaiton.StartupPath了 补充下:我看到的数据是在vs2005 DataSet可视化工具上显示的 application.startuppath在哪里设置? 把进程中的Access关闭,重新打开试试 你直接与exe文件放在同一下目录下吧,OleDbConnection strConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=printerfinal.mdb;Persist Security Info=False");如果用DataDirectory,就相当data目录,Data source= |DataDirectory|printerfinal.mdb;Persist Security Info=True 修改好了,我将config文件中的一个相对路径 |DataDirectory| 改成了Data文件夹的绝对路径,就可以了。原来的DataDirectory可能是链接到了其他地方。。 你说的|DataDirectory| 是什么意思啊?我也是这里不太明白,在Settings.Designer.cs中属性中关于connectionstring有这个标识,我只当时相对路径 数据库文件如果是放在你建立的data目录下,那么|DataDirectory|就相当data目录,使用时Data source= |DataDirectory|printerfinal.mdb;就可。现在你的数据库文件放在哪个目录下?你用相对路径就可 你说的是和.sln放在同一路径吗? 我试了下,好像是链接到\bin\debug\printerfinal.mdb的数据库 这是另外一个文件夹 如果是放在\bin\debug\printerfinal.mdb,用:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=printerfinal.mdb;Persist Security Info=False" 恩恩,你的回答很对,现在我是链接到\bin\data\printerfinal.mdb,该如何操作呢 恩恩,你的回答很对,现在我是链接到\bin\data\printerfinal.mdb,该如何操作呢按照你说的改了,但是提示错误,|DataDirectory|总是定义到\bin\debug\printerfinal.mdb, 在哪里定义|DataDirectory|? 不用定义 ,你在项目里建立data目录,将数据库文件放在这个目录下,在Data source= |DataDirectory|printerfinal.mdb 我估计你在什么地方配置了|DataDirectory| 定位到DEBUG就对了啊,你最终生成的EXE文件就在这个文件夹下,当然只能去找到这个文件夹了.如果不想用绝对路径,还想要跳出程序所在文件夹,你需要使用类似..\..\这样的形式,后退出来 .sln是你开发环境的工程目录,跟运行是两码事. WinForm的父窗体问题,大虾们快来快来~~~~~~~~~ 咋判断当前是否存在某个对象的实例? 正则表达式的问题 看看这段代码什么意思啊!! 关于多语言版本的问题!大家进来看看! MSHFlexGrid控件 正则表达式一头疼问题,多谢 如何取得客户端信息?如 Ip,时间等? 怎么可以将数据库中的图片显示到页面上 文件传输怎么穿过防火墙? 模拟input type=file 在谷歌浏览器上可以,IE 360要单击上传按钮两次 c# winform中,设置一列只能选择一行怎么弄?
string myConnectionString = global::Print.........
string mySql = "select * from 票据控件参数 where.."
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
myConnection.Open();
DataTable myTable = new DataTable();
OleDbDataAdapter myAdapter = new OleDbDataAdapter(mysql, myConnection);
myAdapter.Fill(myTable);到这里看代码应该是重新填充,但是debug的table不是.mdb中更新的数据,郁闷
如果我理解的正确,那么只能说明你查出来的东西和你修改的是不同的东西。另外如果你先查询了,填充了datatable然后再到企业管理器中手动修改数据库表,datatable是不会自动更新的把。不然它也太智能了。如果我的理解有误,请补充。
是根据表格中的票据模板name来查询的结果,在数据库中也此对应项找到查询结果,但是就得到刚才的情况
OleDbConnection strConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=printerfinal.mdb;Persist Security Info=False");如果用DataDirectory,就相当data目录,
Data source= |DataDirectory|printerfinal.mdb;Persist Security Info=True
我试了下,好像是链接到\bin\debug\printerfinal.mdb的数据库 这是另外一个文件夹
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=printerfinal.mdb;Persist Security Info=False"
如果不想用绝对路径,还想要跳出程序所在文件夹,你需要使用类似..\..\这样的形式,后退出来