C# 无法从Visual C将数据插入MS Access数据库#

C# 无法从Visual C将数据插入MS Access数据库#,c#,visual-studio,ms-access,database-engine,C#,Visual Studio,Ms Access,Database Engine,只是一个编程新手。。。 我使用一个类来处理connectionstring 公共类数据库 { public OleDbConnection con=新的OleDbConnection(); public OleDbCommand cmd=新的OleDbCommand() 当我点击按钮时,我看到的是“Microsoft JET数据库引擎”而没有看到更多的上下文(例如连接字符串和数据上下文的样子),我只能猜测一下 一个问题似乎是下面名为“Cotumer_Name”的字段中有一个拼写错误。您的文本框名

只是一个编程新手。。。 我使用一个类来处理connectionstring

公共类数据库 { public OleDbConnection con=新的OleDbConnection(); public OleDbCommand cmd=新的OleDbCommand()


当我点击按钮时,我看到的是“Microsoft JET数据库引擎”

而没有看到更多的上下文(例如连接字符串和数据上下文的样子),我只能猜测一下

一个问题似乎是下面名为“Cotumer_Name”的字段中有一个拼写错误。您的文本框名为“CustomerName”,其中有一个S

OleDbCommand command = new OleDbCommand 
    ("INSERT INTO  TicketAndCottage (Cotumer_Name , Swimming, Adult, Kids, Cottage, Room , Total, Cash, Change) 
                              Values(@Name , @DayorNight , @Adult1 ,@Kid , @Cottage1 , @Room, @Total1 , @Cash1 , @Change1)");

包含更多的代码会很有帮助。

我知道哪里出了问题

private void btnPrint_Click(object sender, EventArgs e)
        {
            DataBase db = new DataBase();
            db.getConnection();
            db.con.Open();

            string Name = txtCostumerName.Text;
            string DayorNight = cboSwimming.Text;
            string Adult1 = txtAdultCount.Text;
            string Kid = txtKidsCount.Text;
            string Cottage1 = cboCottageType.Text;
            string Room = cboRoomType.Text;
            double Total1 = Convert.ToDouble(lblCottageTotal.Text);
            double Cash1 = Convert.ToDouble(txtCashRecieve.Text);
            double Change1 = Convert.ToDouble(txtChange.Text);
            OleDbCommand command = new OleDbCommand("INSERT INTO  TicketAndCottage (Costumer_Name , Swimming, Adult, Kids, Cottage, Room , Total, Cash, Change) Values(@Name , @DayorNight , @Adult1 ,@Kid , @Cottage1 , @Room, @Total1 , @Cash1 , @Change1)", db.con);

            if (db.con.State == ConnectionState.Open)
            {
                command.Parameters.Add("@Costumer_Name", OleDbType.VarChar, 50).Value = Name;
                command.Parameters.Add("@Swimming", OleDbType.VarChar, 50).Value = DayorNight;
                command.Parameters.Add("@Adult", OleDbType.VarChar, 50).Value = Adult1;
                command.Parameters.Add("@Kids", OleDbType.VarChar, 50).Value = Kid;
                command.Parameters.Add("@Cottage", OleDbType.VarChar, 50).Value = Cottage1;
                command.Parameters.Add("@Room", OleDbType.VarChar, 50).Value = Room;
                command.Parameters.Add("@Total", OleDbType.Double, 50).Value = Total1;
                command.Parameters.Add("@Cash", OleDbType.Double, 50).Value = Cash1;
                command.Parameters.Add("@Change", OleDbType.Double, 50).Value = Change1;

                try
                {
                    command.ExecuteNonQuery();
                    db.con.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Source);
                    // db.con.Close();
                }
            }
            else
            {
                MessageBox.Show("Connection Failed");
            }
}

检查连接字符串中的OLEDB引擎版本以及计算机体系结构。Jet OLEDB提供程序和应用程序体系结构应匹配。我希望您知道Visual Studio的默认设置是将数据库复制到其自己的文件夹中。Access使用位置,而不是外部SQL参数的名称。
private void btnPrint_Click(object sender, EventArgs e)
        {
            DataBase db = new DataBase();
            db.getConnection();
            db.con.Open();

            string Name = txtCostumerName.Text;
            string DayorNight = cboSwimming.Text;
            string Adult1 = txtAdultCount.Text;
            string Kid = txtKidsCount.Text;
            string Cottage1 = cboCottageType.Text;
            string Room = cboRoomType.Text;
            double Total1 = Convert.ToDouble(lblCottageTotal.Text);
            double Cash1 = Convert.ToDouble(txtCashRecieve.Text);
            double Change1 = Convert.ToDouble(txtChange.Text);
            OleDbCommand command = new OleDbCommand("INSERT INTO  TicketAndCottage (Costumer_Name , Swimming, Adult, Kids, Cottage, Room , Total, Cash, Change) Values(@Name , @DayorNight , @Adult1 ,@Kid , @Cottage1 , @Room, @Total1 , @Cash1 , @Change1)", db.con);

            if (db.con.State == ConnectionState.Open)
            {
                command.Parameters.Add("@Costumer_Name", OleDbType.VarChar, 50).Value = Name;
                command.Parameters.Add("@Swimming", OleDbType.VarChar, 50).Value = DayorNight;
                command.Parameters.Add("@Adult", OleDbType.VarChar, 50).Value = Adult1;
                command.Parameters.Add("@Kids", OleDbType.VarChar, 50).Value = Kid;
                command.Parameters.Add("@Cottage", OleDbType.VarChar, 50).Value = Cottage1;
                command.Parameters.Add("@Room", OleDbType.VarChar, 50).Value = Room;
                command.Parameters.Add("@Total", OleDbType.Double, 50).Value = Total1;
                command.Parameters.Add("@Cash", OleDbType.Double, 50).Value = Cash1;
                command.Parameters.Add("@Change", OleDbType.Double, 50).Value = Change1;

                try
                {
                    command.ExecuteNonQuery();
                    db.con.Close();
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Source);
                    // db.con.Close();
                }
            }
            else
            {
                MessageBox.Show("Connection Failed");
            }
}