孙小兔 2013-12-17 06:53 采纳率: 0%
浏览 3087

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 busID

public 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 + "\r\n是否继续?", "数据访问错误", MessageBoxButton.YesNo) == MessageBoxResult.No)
                this.Close();
        }
    }

    private void window_closed(object sender, EventArgs e)
    {
        BusDB.Close();
    }

}

}

设置断点后,可以得到 cmd.ExecuteNonQuery() 的返回值是1.

CSDN移动问答
CSDN移动问答
CSDN移动问答CSDN移动问答CSDN移动问答CSDN移动问答

  • 写回答

3条回答 默认 最新

  • 钦犯 2013-12-17 07:06
    关注

    Debug嘛。
    Release方式呢?

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站