问题描述
- C#连接Access数据库insert操作时,debug目录下临时数据库修改了,但是原数据库不变。
-
尝试把accdb放在debug文件下下过,但是我导入时它自动就会在项目文件夹里复制过去一个数据库文件。insert操作时,显示插入的信息是成功的,并且当时可以搜索到该数据,但重新运行程序后,以前的数据未被保存。App.config
< ?xml version="1.0" encoding="utf-8" ?>
< configuration>
< configSections>< connectionStrings>
< add name="BusDB"
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Bus(原件).accdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
< /connectionStrings>
< startup>
< supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
< /startup>< /configuration>
BusDB.cs
(插入函数都差不多,就贴一个,因为数据都是这个情况。)
public static void addBusID(String busID) { DbCommand cmd = Connection.CreateCommand(); cmd.CommandText = String.Format("INSERT INTO [Bus] VALUES ('{0}')", busID); cmd.ExecuteNonQuery(); }
MainWindow.xml.cs //此处代码我已修改为简单版本,为测试用,就insert busIDpublic partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_click(object sender, RoutedEventArgs e) { List<String> station = new List<string>(); if (busNumber.Text == "") { MessageBox.Show("请输入车次"); busNumber.Focus(); return; } else if( BusDB.existBusID(busNumber.Text)==true) { MessageBox.Show("该车已存在"); busNumber.Focus(); return; } else if (addstations.Text == "") { MessageBox.Show("请输入车站"); addstations.Focus(); } else { BusDB.addBusID(busNumber.Text);//简化版 } } private void window_loaded(object sender, RoutedEventArgs e) { string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["BusDB"].ConnectionString; BusDB.Connection = new OleDbConnection(connStr); try { BusDB.Open(); } catch (Exception ex) { if (MessageBox.Show(ex.Message + "rn是否继续?", "数据访问错误", MessageBoxButton.YesNo) == MessageBoxResult.No) this.Close(); } } private void window_closed(object sender, EventArgs e) { BusDB.Close(); }
}
}
设置断点后,可以得到 cmd.ExecuteNonQuery() 的返回值是1.
解决方案
Debug嘛。
Release方式呢?
解决方案二:
offficde方式
解决方案三:
这个问题是数据库连接的问题,看看到底是连的哪个数据库
时间: 2024-11-18 20:53:39