C#winform往SQL数据库插入数据后,停止项目,再次运行,数据没有了,是在右键工程添加的数据库。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#winform往SQL数据库插入数据后,停止项目,再次运行,数据没有了,是在右键工程添加的数据库。相关的知识,希望对你有一定的参考价值。

看过网上的解答,写入的东西实际上是写入了debug下面的那个生成的数据库,那怎么添加数据库或怎么操作才能在项目里面插入数据就能一次永久保存在数据库?
private void button1_Click(object sender, EventArgs e)

if (textBox1.Text == ""||textBox2.Text=="")
MessageBox.Show("请填写合适的信息!!");
else
yewu m = new yewu();
m.insertmand("insert into tb_EmpInfo values('" + this.textBox1.Text + "','" + this.textBox2.Text + "','" + this.dateTimePicker1.Value.ToString() + "','" + this.textBox5.Text + "','" + this.textBox3.Text + "','" + this.textBox4.Text + "','" + this.richTextBox1.Text + "')");
MessageBox.Show("添加一行员工记录成功", "消息");
this.Hide();


yewu 是业务处理层的类 ,一直传到数据访问层链接数据库,若在app.config使用数据库绝对路径,不会有问题,若使用相对路径AttachDbFilename=|DataDirectory|×××.MDF,就出现我描述的问题

数据库是与前台代码分离的。不可能出现关掉前台改变数据库的问题。
你更改的是数据集(dataset)吧?
需要什么样的帮助?追问

更改的是数据集??怎么说,不太明白

追答

连接字符串:
connectionString="Data Source=localhost;Initial Catalog=数据库名称;User ID=用户名;Password=密码"
我是用这样的相对路径没有问题。

你的yewu()类存在SQL注入漏洞。建议不使用。

参考技术A 把你代码copy下来看看那!!追问

copy了

参考技术B 插入数据库后,打开数据表,看看数据究竟有没有写到表里。追问

是已经写到表里面了,停止项目几分钟,再运行,表里面的数据就没有了。若再次插入数据,前一次插入的数据会别覆盖掉

参考技术C winfrom下是不能用|DataDirectory|,要用绝对路径追问

哦,那如果是这样,我要移动项目到别的机子,岂不是每次还得修改app.config数据库路径?有什么更好的方法?

追答

把数据库放在程序的根目录下,就可以用application.startuppath获取根目录的路径,然后再加上数据库的名称就行了

sql插入数据后怎么覆盖以前的?? 比如数据库有123数据、我重新插入123时。123变成别的数字。。

求解
写出存储过程10分感谢

数据库是不能直接覆盖之前的数据的,你想完成“覆盖”的功能必须用update语句。
例:update 要修改的表名 set 属性名='123' where 属性名='原来的值'
这里需要注意的是where后面的条件必须是唯一的,以确定你要修改的行 。
参考技术A 用更新语句,直接就能实现。update 表名 要更新的属性名=“value” where……

以上是关于C#winform往SQL数据库插入数据后,停止项目,再次运行,数据没有了,是在右键工程添加的数据库。的主要内容,如果未能解决你的问题,请参考以下文章

sql server 表中有一列,往数据库同时插入几条数据时,这个列的值是相同的

SQL的INSERT怎么可以一次插入多项数据?

c++ builder 往SQL数据库插入日期类型字段问题

怎么往MySQL数据库里插入时间记录?就是简单的SQL语句,一句话的例子!谢谢了

c# winform DataGridView添加一行,添加数据后,保存到数据库

sql中往一个表中插入数据但是其中一列需要从另一张表查状态,求指导