C#+Access 程序中插入数据成功,数据库中却没有数据

publicboolNewTeacherPlan(stringPlanTitle,stringPlanContext,intClassID,stringCourse){O... public bool NewTeacherPlan(string PlanTitle, string PlanContext, int ClassID, string Course)
{
OleDbConnection con = new OleDbConnection(_ConnectionString);
OleDbCommand cmd = new OleDbCommand("INSERT INTO [TeacherPlans] ([TeaPlanTitle],[TeaPlanContext],[ClassID],[Course],[CreateDate]) VALUES (@PlanTitle,@PlanContext,@ClassID,@Course,@CreateDate)", con);
cmd.Parameters.Add("@PlanTitle", OleDbType.VarChar).Value=PlanTitle;
cmd.Parameters.Add("@PlanContext", OleDbType.VarChar).Value = PlanContext;
cmd.Parameters.Add("@ClassID", OleDbType.TinyInt).Value = ClassID;
cmd.Parameters.Add("@Course",OleDbType.VarChar).Value=Course;
cmd.Parameters.Add("@CreateDate", OleDbType.Date).Value=DateTime.Now;
con.Open();
int k = 0;
k = cmd.ExecuteNonQuery();
if (k > 0)
{
con.Close();
return true;
}
return false;
}
执行该方法,调试返回的是true,K也是1,说明执行了,但是打开数据库里面却没有数据,请问高手该如何解决??
确定核实了,我都核实了一天了,绝对数据库没错,表也没错
确实成功插入了,只是数据库里没数据,一关了程序,就读不到了,刚插进去的时候我还能用程序读到刚插的数据
展开
 我来答
沧海V飞天
2009-05-22 · TA获得超过450个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:270万
展开全部
你的问题楼上已经解决了
access数据库真正被改数据的是你debug下面的 每当你用VS2005运行调试程序都会从你指定的目录拷贝一份到debug下面 希望你直接运行debug下面的exe文件 你会发现没错的
这是一个很常见的问题 第一次用access都会碰到的
feiyangqingyun
2009-05-22 · TA获得超过393个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:284万
展开全部
这个问题我同学也遇到过,确实是有此事情的,很奇怪!我看了看,代码没有错的,可能你电脑上面的ACCESS数据库装的是绿色版的吧!建议你重新安装一下原版的ACCESS2003,这样就可以啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2009-05-19 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4487万
展开全部
ACCESS 的 MDB 数据库,在你每次调式的时候, 都会重新拷贝一个到调式运行的目录,覆盖掉原来的。 所以,你如果只是看 app_data目录下的话,当然是没有数据了。 需要到 bin/debug 或 bin/release 目录下去看,肯定有的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cacva
2009-05-13 · TA获得超过256个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:73.2万
展开全部
你在调试程序的时候,会在你的工程文件假下的bin/debug下生成解决方案程序,那里面会有数据库文件。你更改的应该是那下面的Access数据库,但是你关闭程序后在工程里面检查或者浏览的数据,应该是你工程文件夹下的数据库。
有问题可以继续提出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
多谢SOS
2009-05-11 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:112万
展开全部
把cmd.Parameters.Add("@CreateDate", OleDbType.Date).Value=DateTime.Now;
改为cmd.Parameters.Add("@CreateDate", OleDbType.DBTimeStamp).Value=DateTime.Now.toString();

参考资料: http://www.wenzigg.com

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
202261256487e6a
2009-05-11 · TA获得超过481个赞
知道小有建树答主
回答量:795
采纳率:0%
帮助的人:690万
展开全部
您是不是直接测试的?Ctrl+F5??
或者F5调试的>??
如果是那你的问题很简单,发布之后再运行
因为vs测试的时候你的数据都会被初始化,包括数据库,所以每次数据库都是最初状态,也就是没插入数据之前的状态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式