0

我正在使用 Visual Studio 2012 并将其连接到 MS Access 2016。我的系统工作正常,但当我尝试单击搜索按钮时,vshost32.exe 总是停止工作。

这是我的代码:

namespace WindowsFormsApplication4
{
public partial class SalesInventory : Form
{

    public SalesInventory()
    {
        InitializeComponent();
    }

    private void SearchButton_Click(object sender, EventArgs e)
    {
        string source = @"Provider= Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Irma\\Documents\\project.accbd;Persist Securit Info= False";
        OleDbConnection conn = new OleDbConnection(source);
        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
            string str = "Select * FROM Products WHERE Product_Name LIKE '%" + SearchTextBox.Text + "%'";
            OleDbDataAdapter da = new OleDbDataAdapter(str, conn);

            DataTable ds = new DataTable();
            ds.Clear();
            da.Fill(ds);
            GrindView.DataSource = ds;
            conn.Close();

        }
        else
        {
            string str = "Select * FROM Products WHERE Product_Name LIKE '%" + SearchTextBox.Text + "%'";
            OleDbDataAdapter da = new OleDbDataAdapter(str, conn);

            DataTable ds = new DataTable();
            ds.Clear();
            da.Fill(ds);
            GrindView.DataSource = ds;
            conn.Close();

        }
    }
}
}

即使使用此代码 vshost32.exe 停止工作:

    private void AddBut_Click(object sender, EventArgs e)
    {
        OleDbConnection conn = new OleDbConnection();
        conn.ConnectionString = @"Provider= Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Irma\\Documents\\project.accbd;Persist Security Info= False";

        OleDbCommand command = new OleDbCommand("Insert into Product([Product_Name]) VALUES (@ProdName)");
        command.Connection = conn;
        conn.Open();
        if (conn.State == ConnectionState.Open)
        {
            command.Parameters.AddWithValue("@ProdName", ProdNameText.Text);


            try
            {
                command.ExecuteNonQuery();
                MessageBox.Show("Data Added");
                conn.Close();
                OleDbCommand cmd = new OleDbCommand("Insert into product_Fields([Product_Name],[Description],[Category],[Quantity],[Price],[Supplier_Name]) VALUES (@prodName,@Description,@Category,@Quantity,@Price,@Supplier_Name)");
                cmd.Connection = conn;
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {

                    cmd.Parameters.AddWithValue("@prodName", ProdNameText.Text);
                    cmd.Parameters.AddWithValue("@Description", DescriptionComboBox.Text);
                    cmd.Parameters.AddWithValue("@Category", CategoryComboBox.Text);
                    cmd.Parameters.AddWithValue("@Quantity", QuantityBox.Text);
                    cmd.Parameters.AddWithValue("@Price", PriceBox.Text);
                    cmd.Parameters.AddWithValue("@Supplier_Name", SupplierNameText.Text);
                }
                try
                {
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Data Added");
                    conn.Close();

                }
                catch
                {
                    MessageBox.Show("Error");
                    conn.Close();
                }
                }

            catch
            {

                MessageBox.Show("Error");
                conn.Close();

            }
        }
        else 
        {
            MessageBox.Show("Data Connection Failed");
            this.Close();
        }

        }
4

0 回答 0