c#插入数据老是不成功

ljafl9988 2011-11-18 06:57:24
想往ACCESS数据库里添加数据,代码如下,能运行,但是结果就是不能插入到数据库里,请高手帮忙看下:
我建了一个公共类dbClass,其中有一个公共方法是专门用来连接数据库的
public class dbClass
{
public OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db1.accdb");
}
按钮的代码如下:
private void button1_Click_1(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "")
{
MessageBox.Show("输入完整的学生信息", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
DataSet ds = new DataSet();
//OleDbDataAdapter da = new OleDbDataAdapter();
insert.myConnection.Open();
string sqls = "SELECT * FROM 书籍信息 WHERE 书籍编号='" + textBox1.Text.Trim() + "'";
OleDbDataAdapter da = new OleDbDataAdapter(sqls, insert.myConnection);
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 1)
{
MessageBox.Show("该书籍编号已存在", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
if (MessageBox.Show("确认添加?", "信息提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
string sql1, sql2, sql3;
sql1 = "INSERT INTO 书籍信息(书籍编号,书籍名称,出版社,作者,状态,所在位置)";
sql2 = "VALUES('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox5.Text.Trim() + "','" + textBox6.Text.Trim() + "')";
sql3 = sql1 + sql2;
dbClass cons = new dbClass();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = sql3;
try
{
//cons.Open();
cons.myConnection.Open();
cmd.ExecuteNonQuery();
}
catch { }
finally
{
cons.myConnection.Close();
cons.myConnection.Dispose();
cmd.Dispose();
}
MessageBox.Show("信息保存成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
string s = "SELECT * FROM 书籍信息";
OleDbDataAdapter da1 = new OleDbDataAdapter(s, insert.myConnection);
da1.Fill(ds);
if (ds.Tables[0].Rows.Count > 1)
{
dataGridView1.DataSource = ds.Tables[0];
}

}
}
}
}
...全文
283 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
DENQH 2011-11-24
  • 打赏
  • 举报
回复
1.输出SQL语句看一下
2.你的数据类型正确吗?
siemens_chang 2011-11-24
  • 打赏
  • 举报
回复
加段点,把最总Sql语句放数据库运行一下就OK啦
ljafl9988 2011-11-21
  • 打赏
  • 举报
回复
不用这种方法了,找了个简单的方法解决了,谢谢大家了
小豪 2011-11-19
  • 打赏
  • 举报
回复
加断点是最好的解决方法了~
迈克尔1998 2011-11-19
  • 打赏
  • 举报
回复
有没有具体的错误提示?认真检查一下每个环节
youzelin 2011-11-19
  • 打赏
  • 举报
回复
TO:LZ


try
{
......
}
// 老大,
// 你这里都不 throw 的啊?但至少 MessageBox 一下吧?!
// 否则 exception 直接吞没啊!你看代码运行怎么也看不出来的啊!
catch { }
finally
{
......
}
烟波钓 2011-11-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sp1234 的回复:]
Access?

我们招聘数据库方面开发人员时,时不再考虑关系数据库思路,现在需要的是面向对象/文档的思路,例如是否熟悉MongoDb的开发应用思路。
[/Quote]看来我又落下了 这个“现在需要的是面向对象/文档的思路”第一次听说
renyiqiu 2011-11-19
  • 打赏
  • 举报
回复
先判断SQL语句的是否正确,还有先别用catch捕获,不然找不到错误
senlerlemon 2011-11-19
  • 打赏
  • 举报
回复
果断加断点调试...
山东蓝鸟贵薪 2011-11-19
  • 打赏
  • 举报
回复
你可将SQL语句在数据库中运行一下试试,看看是那里出错了呀
yth126 2011-11-19
  • 打赏
  • 举报
回复
加断点,抓取access要执行的语句,再一个就是看CATCH抓到的是什么错误。
绿领巾童鞋 2011-11-19
  • 打赏
  • 举报
回复
执行前先打印SQL语句,查看对应字段格式是否正确。
  • 打赏
  • 举报
回复
Access?

我们招聘数据库方面开发人员时,时不再考虑关系数据库思路,现在需要的是面向对象/文档的思路,例如是否熟悉MongoDb的开发应用思路。
pengkangde 2011-11-19
  • 打赏
  • 举报
回复
if (ds.Tables[0].Rows.Count > 1)
错了吧!当有一行是,已经有这本书了,怎么你还添加,改为大于0或大于等于1吧!
还有后面的显示判断的也跟着改为大于0或大于等于1
极地_雪狼 2011-11-19
  • 打赏
  • 举报
回复
可能你没有UPDATE,至修改了对象,没有修改持久层的东西。
krenyelang 2011-11-18
  • 打赏
  • 举报
回复
百度下吧……
DENQH 2011-11-18
  • 打赏
  • 举报
回复
Data Source=db1.accdb
数据库路径不对
宝_爸 2011-11-18
  • 打赏
  • 举报
回复
是不是工程编译后bin\debug下的数据库被覆盖了。
thinkingforever 2011-11-18
  • 打赏
  • 举报
回复
没插成功可能出错了,在catch里面把错误弄出来,不要屏蔽
ningweidong 2011-11-18
  • 打赏
  • 举报
回复
你在插入之前,设个断点看看你的sql语句
加载更多回复(1)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧