数据库插入的问题

chaye12 2008-07-05 08:56:21
我做了个窗体程序,插入了一条数据,点插入的时候,提示插入成功,但是数据表里项目下的数据表里没数据,只是DEBUG下面的数据库里插入了,请问该如何去做,才能使正常的数据表里也有数据呢?
...全文
128 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostAdai 2008-07-05
  • 打赏
  • 举报
回复
但是数据表里项目下的数据表里没数据,只是DEBUG下面的数据库里插入了
---------------------------------------------------------------
两个数据库?Access?你连接串里指定的是哪个?
Bryan_JU 2008-07-05
  • 打赏
  • 举报
回复
代码上看不出什么错误
chaye12 2008-07-05
  • 打赏
  • 举报
回复
恩,是的我的部分代码忘记贴了,正确的代码如下!
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
string sql = "insert into [jswg] (完工日期,工号,姓名,工序编号,工序名称,工作时间,备注) values (@wgrq,@gh,@xm,@gxbh,@gxmc,@gzsj,@bz)";
OleDbConnection olecon = new OleDbConnection(conn);
olecon.Open();
OleDbCommand olecmd = new OleDbCommand(sql, olecon);
olecmd.Parameters.Add("@wgrq", OleDbType.DBDate, 50).Value = dateTimePicker1.Text;
olecmd.Parameters.Add("@gh", OleDbType.VarChar, 50).Value = this.textBox7.Text;
olecmd.Parameters.Add("@xm", OleDbType.VarChar, 50).Value = this.textBox1.Text;
olecmd.Parameters.Add("@gxbh", OleDbType.VarChar, 50).Value = this.textBox2.Text;
olecmd.Parameters.Add("@gxmc", OleDbType.VarChar, 50).Value = this.comboBox1.Text;
olecmd.Parameters.Add("@gzsj", OleDbType.Integer, 50).Value = Convert.ToInt32(this.textBox3.Text);
olecmd.Parameters.Add("@bz", OleDbType.VarChar, 50).Value = this.textBox5.Text;
int i = Convert.ToInt32(olecmd.ExecuteNonQuery());
if (i > 0)
{
MessageBox.Show("插入成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show("发现异常!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
olecon.Close();
lyp464686109 2008-07-05
  • 打赏
  • 举报
回复
代码!!!!
machaohappy111 2008-07-05
  • 打赏
  • 举报
回复
迷惑
猜想

olecmd olecon
被定义成了此类的属性
或者由父类继承--------没有对数据库制作成统一管理。用参数的方法玩数据,有些画蛇添足。

string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
string sql = "insert into [jswg] (完工日期,工号,姓名,工序编号,工序名称,工作时间,备注) values (@wgrq,@gh,@xm,@gxbh,@gxmc,@gzsj,@bz)";

olecon = new OleDbConnection(strConn);
olecon .open();
olecmd = new OleDbCommand(sql ,olecon );


olecmd.Parameters.Add("@wgrq", OleDbType.DBDate, 50).Value = dateTimePicker1.Text;
----------
--------
---------
int i = olecmd.ExecuteNonQuery();
---------------------
-------------------
--------------
newlist003 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Bryan_JU 的回复:]
代码上看不出什么错误
[/Quote]
chaye12 2008-07-05
  • 打赏
  • 举报
回复
代码贴了,各位帮帮忙吧,老板催的急呢!
ligengrong 2008-07-05
  • 打赏
  • 举报
回复
olecmd的声明呢!?
chaye12 2008-07-05
  • 打赏
  • 举报
回复
请各位帮帮忙!!
chaye12 2008-07-05
  • 打赏
  • 举报
回复
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
string sql = "insert into [jswg] (完工日期,工号,姓名,工序编号,工序名称,工作时间,备注) values (@wgrq,@gh,@xm,@gxbh,@gxmc,@gzsj,@bz)";
olecmd.Parameters.Add("@wgrq", OleDbType.DBDate, 50).Value = dateTimePicker1.Text;
olecmd.Parameters.Add("@gh", OleDbType.VarChar, 50).Value = this.textBox7.Text;
olecmd.Parameters.Add("@xm", OleDbType.VarChar, 50).Value = this.textBox1.Text;
olecmd.Parameters.Add("@gxbm", OleDbType.VarChar, 50).Value = this.textBox2.Text;
olecmd.Parameters.Add("@gxmc", OleDbType.VarChar, 50).Value = this.comboBox1.Text;
olecmd.Parameters.Add("@gzsj", OleDbType.Integer, 50).Value = Convert.ToInt32(this.textBox3.Text);
olecmd.Parameters.Add("@bz", OleDbType.VarChar, 50).Value = this.textBox5.Text;
int i = Convert.ToInt32(olecmd.ExecuteNonQuery());
if (i > 0)
{
MessageBox.Show("插入成功! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show("发现异常!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
olecon.Close();
就是这些,跟踪了下,i的值为1
bukater 2008-07-05
  • 打赏
  • 举报
回复
一句话来说就是,你选择哪种模式,就调用那个文件夹的数据文件,前提是你选择的是相对数据库路径,绝对的路径应该没问题。
格拉 2008-07-05
  • 打赏
  • 举报
回复
不明白LZ说什么,一会有一会没有
amandag 2008-07-05
  • 打赏
  • 举报
回复
代码
zzyhuian06142 2008-07-05
  • 打赏
  • 举报
回复
代码贴来看看
GhostAdai 2008-07-05
  • 打赏
  • 举报
回复
你的数据库是一个Access文件,又不存在联动的问题,你把D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1这个下面的数据库删掉都不会影响程序,只要你D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\bin\debug\这个路径下还有那个数据库就行了,Visual Studio 2005每次编译都会把D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\路径这个路径下不用编译的文件直接拷贝到debug或release路径下,如果你不想让它拷的话打开你的工程,选中不用拷贝的文件,在属性面板里设置不拷贝就行了。不过以后你的程序发布的时候就要自己拷贝相关文件了。
chaye12 2008-07-05
  • 打赏
  • 举报
回复
那为什么一个更新了,另一个却没有更新!
GhostAdai 2008-07-05
  • 打赏
  • 举报
回复
在Debug模式下是用D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\bin\debug\这个

在release模式下是用D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\bin\release\这个

最后结论:程序没有问题。
chaye12 2008-07-05
  • 打赏
  • 举报
回复
D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1
下面一个
D:\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\bin\debug\
下面一个,
难道这俩不是一个吗????
该用哪个呢??

111,125

社区成员

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

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

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