首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
C#
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
ASSESS无法插入数据……
[已结贴,结贴人:Roentgen220512]
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 15:34:24
楼主
DoDataBase类内容如下:
public static DataSet GetDataSet(string sql)
{
OleDbConnection conn = new OleDbConnection();
DataSet ds = new DataSet();
try
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=True;Jet OLEDB:Database Password=7772 ");
OleDbDataAdapter sda = new OleDbDataAdapter(sql, conn);
sda.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
conn.Close();
}
}
public bool ExecuteSQL(string sql)
{
OleDbConnection conn = new OleDbConnection();
try
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=True;Jet OLEDB:Database Password=7772 ");
OleDbCommand sqlCmd = new OleDbCommand(sql, conn);
conn.Open();
sqlCmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
return false;
throw ex;
}
finally
{
conn.Close();
}
}
public static OleDbConnection getConnection()
{
OleDbConnection conn = new OleDbConnection();
try
{
{
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=True;Jet OLEDB:Database Password=7772 ");
conn.Open();
}
return conn;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return null;
}
}
按钮触发事件:
private void button1_Click(object sender, EventArgs e)
{
DoDataBase data = new DoDataBase();
string sql = "insert into changjia(CJ) values ('" + textBox1.Text + "')";
bool str = data.ExecuteSQL(sql);
if (str)
{
MessageBox.Show("添加新厂家成功");
}
else
{
MessageBox.Show("添加新厂家失败");
}
this.Close();
}
显示"添加新厂家成功",插入的数据也可以在程序看到,但是关掉程序数据就没了。也就是没有存入数据库文件中,手动在数据库里面改倒是可以……
不知道是不是连接字符串写错了
问题点数:
40
回复次数:
20
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cpio
曾经真的以为人生就这样了
等级:
发表于:
2008-06-25 15:45:57
1
楼 得分:
0
怎么可能?是不是因为关了程序后重新打开顺序不对了没注意看你插入的啊?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ojlovecd
由从不加班到天天加班
等级:
发表于:
2008-06-25 15:50:50
2
楼 得分:
0
显示"添加新厂家成功"之后,你到数据库查过有没有插入成功吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
songhtao
三十年孤独
等级:
发表于:
2008-06-25 15:53:51
3
楼 得分:
0
最好单步调试看数据库代码执行了没有
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
JustLovePro
Ivan.Yan
等级:
发表于:
2008-06-25 15:56:56
4
楼 得分:
0
写的很规范!
怎么可能会出错!
如果是连接字符串的问题,会报错的~
看看是不是没找对地方~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 15:57:59
5
楼 得分:
0
去数据库里看过了,记录完全没变化……
关掉程序重新打开,显示的数据还是老样子……
手动在数据库里面改,重新开程序,数据会跟着变……
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yagebu1983
君子在下则排一方之难,在上则止息万物之嚣. 人以懦弱无刚为大耻,男儿自立,必须有倔强之气.
等级:
发表于:
2008-06-25 16:03:30
6
楼 得分:
0
引用 3 楼 songhtao 的回复:
最好单步调试看数据库代码执行了没有
同意!!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ojlovecd
由从不加班到天天加班
等级:
发表于:
2008-06-25 16:04:52
7
楼 得分:
2
显示"添加新厂家成功"之后,如果数据库中记录没有增加,那只能证明是你的代码有问题,加断点看过了吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 16:06:28
8
楼 得分:
0
以前用SQLSEVER写,可以用事件跟踪器查看数据库语句的执行情况,ACCESS有没有类似的东东?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yilanwuyu123
WPF - 树新风
等级:
发表于:
2008-06-25 16:07:40
9
楼 得分:
0
在dataset里面更新了 没有更新至数据源?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 16:16:06
10
楼 得分:
0
断点看过了,语句执行的过程没有异常,数据库插入的部分也执行了
真是晕死
附上一张图,图(3)显示已经插入成功了,但是关掉整个程序,又恢复到图(1)的样子
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 16:17:22
11
楼 得分:
0
引用 9 楼 yilanwuyu123 的回复:
在dataset里面更新了 没有更新至数据源?
也许是,弄不懂,要怎么查?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cpio
曾经真的以为人生就这样了
等级:
发表于:
2008-06-25 16:22:37
12
楼 得分:
0
表格里面的数据是怎么出来的?
没有用到DataSet吧
把断点设置在ExecuteSQL方法第一行,跟着看是不是执行成功后返回的True
在返回true时,打开Access看里面有没有内容
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yuxianye1
等级:
发表于:
2008-06-25 16:24:11
13
楼 得分:
20
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=True;Jet OLEDB:Database Password=7772 ");
从你的代码看完全没有问题
如果你是在编程环境里添加时 不会真正更新到db1.mdb里的
我以前也遇到过
如果你单独执行在debug里的exe文件就会成功。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yuxianye1
等级:
发表于:
2008-06-25 16:27:23
14
楼 得分:
10
调试运行时执行的时debug里的exe和db1.mdb
当下次调试运行时会把exe重新生成,还会把Application 里的db1.mdb 自动复制到debug里
所以你应该看不到
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 16:30:17
15
楼 得分:
0
引用 13 楼 yuxianye1 的回复:
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;Persist Security Info=True;Jet OLEDB:Database Password=7772 ");
从你的代码看完全没有问题
如果你是在编程环境里添加时 不会真正更新到db1.mdb里的
我以前也遇到过
如果你单独执行在debug里的exe文件就会成功。
还真的是……晕了,为什么会这样?可以改变吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
myh0305
seasail
等级:
发表于:
2008-06-25 16:30:40
16
楼 得分:
2
程序操作的数据文件和你看的那个文件是同一个吗
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lsj_zrp
军军
等级:
发表于:
2008-06-25 16:33:04
17
楼 得分:
4
是不是把Access添加到解决方案里面去了?
那是因为每次你Debug的时候,实际上程序会把你添加的Access拷贝一份到Bin目录下
,所以你每次操作完成后打开,看到的仍是之前的。
操作完成后你可以在Bin目录下的Access里面看到你的操作结果。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yuxianye1
等级:
发表于:
2008-06-25 16:33:08
18
楼 得分:
2
当时遇到这个问题也挺奇怪
后来就一点一点排除
找到原因了就
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ojlovecd
由从不加班到天天加班
等级:
发表于:
2008-06-25 16:33:48
19
楼 得分:
0
引用 14 楼 yuxianye1 的回复:
调试运行时执行的时debug里的exe和db1.mdb
当下次调试运行时会把exe重新生成,还会把Application 里的db1.mdb 自动复制到debug里
所以你应该看不到
原来如此,学习了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Roentgen220512
等级:
发表于:
2008-06-25 16:37:32
20
楼 得分:
0
谢谢大家,问题解决了,我来结贴了
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友