孙小兔 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方式呢?

    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?