访问不保存输入

本文关键字:输入 保存 访问 | 更新日期: 2023-09-27 18:16:04

我在Yt, Google等上查了一下。我尝试了5种解决方案,但一无所获。我把txt放到文本框,它显示在列表框中,但不去访问。

简而言之

 private void addAF_Click(object sender, EventArgs e)
    {

         if (aFInput.Text != "") {
            string q = "insert into AFs (AFNumber,SendDate,Notes) values ('"+aFInput.Text.ToString()+"','"+DateTime.Now+"', '"+notes.Text.ToString()+"')";
            dosomemagic(q);
            aFInput.Text = null;
        }
    }
    private void dosomemagic(String q)
    {
        try
        {
            cnn.Open();
            cmd.CommandText = q;
            cmd.ExecuteNonQuery();
            cnn.Close();
            loaddata();
        }
        catch (Exception e)
        {
            cnn.Close();
            MessageBox.Show(e.Message.ToString());
        }
    }
    private void ANLPA_Load(object sender, EventArgs e)
    {
        cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=AFdbB03.mdb;";
        cmd.Connection = cnn;
        loaddata();
    }
    private void loaddata()
    {
        AFList.Items.Clear();
        try
        {
            string q = "select * from AFs";
            cmd.CommandText = q;
            cnn.Open();
            dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    AFList.Items.Add(dr[1].ToString());
                    keyList.Items.Add(dr[0].ToString());
                }
            }
            dr.Close();
            cnn.Close();
        }
        catch (Exception ex) 
        {
            cnn.Close();
            MessageBox.Show(ex.Message.ToString());
        }
    }

访问不保存输入

当你的应用程序运行时,它从文件夹BIN'DEBUG运行,当你开始调试会话时,你将你的记录添加到Visual Studio复制在该文件夹中的数据库中。如果你的文件有属性Copy to Output Directory设置为Copy Always,那么每次你开始一个调试会话,Visual Studio将MDB文件从你的项目文件夹复制到你的输出目录(BIN' debug或x86变体)

通过这种方式,您的代码可以正确写入,但在下次运行时,您的数据会消失,因为文件已被Visual Studio

所替换。

设置属性Copy To Output directoryCopy NeverCopy if Newer

作为旁注,请花一点时间学习如何使用参数化查询。您的代码实际上可以工作,但是如果您的notes文本框在其Text属性中包含单个引号会发生什么?代码将因语法错误而崩溃。但这只是你的小问题。有一种众所周知的黑客技术叫做Sql注入,它可以破坏数据库中的数据。