0

コードの何が問題になっていますか? SQL Server と C# の間の接続をセットアップすると、「 ExecuteNonQuery: 接続プロパティが初期化されていません」というエラーが表示されます。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Essencia
{
    public partial class NewReservation : Form
    {
        public NewReservation()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
       SqlConnection con = new SqlConnection();
        con.ConnectionString= "Database= hotel; server= Roger\SQLEXPRESS";
        con.Open();
        SqlCommand cmd = new SqlCommand("insert into CheckIn values(@TransactionId,@GuestName,@RoomType,@RoomNo,@ReservationDate,@CheckInDate,@CheckOutDate,@NoOfDays,@NoOfAdults,@NoOfChildren)");
        cmd.Parameters.AddWithValue("@TransactionId",textBox1.Text);
        cmd.Parameters.AddWithValue("@GuestName", textBox2.Text);
        cmd.Parameters.AddWithValue("@RoomType", textBox3.Text);
        cmd.Parameters.AddWithValue("@RoomNo", textBox4.Text);
        cmd.Parameters.AddWithValue("@ReservationDate", textBox5.Text);
        cmd.Parameters.AddWithValue("@CheckInDate", textBox6.Text);
        cmd.Parameters.AddWithValue("@CheckOutDate", textBox7.Text);
        cmd.P`enter code here`arameters.AddWithValue("@NoOfDays", textBox8.Text);
        cmd.Parameters.AddWithValue("@NoOfAdults", textBox9.Text);
        cmd.Parameters.AddWithValue("@NoOfChildren", textBox10.Text);

        cmd.ExecuteNonQuery();
        con.Close();
        MessageBox.Show("DATA ADDED SUCCESSFULLY!!");
    }
}

}

4

2 に答える 2

0

VALUESSQLの部分はどこINSERT INTOですか?

補足: -usingステートメントを使用して、例外が発生した場合でも接続が確実に閉じられるようにする必要があります。

string sql = @"INSERT INTO checkin 
                       (transactionid, 
                        guestname, 
                        roomtype, 
                        roomno, 
                        reservationdate, 
                        checkindate, 
                        checkoutdate, 
                        noofdays, 
                        noofadults, 
                        noofchildren) 
                VALUES(@TransactionId, 
                       @GuestName, 
                       @RoomType, 
                       @RoomNo, 
                       @ReservationDate, 
                       @CheckInDate, 
                       @CheckOutDate, 
                       @NoOfDays, 
                       @NoOfAdults, 
                       @NoOfChildren)";

using(var con = new SqlConnection(@"Database= hotel; server= Roger\SQLEXPRESS"))
using(var cmd = new SqlCommand(sql , con ))
{
    cmd.Parameters.AddWithValue("@TransactionId",textBox1.Text);
    // other parameters as well
    con.Open();
    cmd.ExecuteNonQuery();
}
于 2013-05-28T21:40:01.660 に答える