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

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题