簡體   English   中英

SQL插入語法,數據庫不更新

[英]SQL insert syntax, database not updating

編輯

我更改了代碼,所以我使用:[“+ Time1 +”]而不是參數。 這是第一次使用,但是當時間增加0.5時,它仍然是錯誤的。 for循環正在嘗試MessageBox.Show(“”+ Time1 +“”); 在for循環中。

for (double Time = time_began_5; Time < time_finished_5; Time = Time + 0.5)
        {
            string Time1 = Time.ToString("0.00");


            try
            {
                SqlConnection cn = new SqlConnection("Data Source=.\\SqlExpress;Initial Catalog=AllensCroft;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework;");

                cn.Open();
                SqlCommand Command = new SqlCommand("INSERT INTO Slots ([Date],[RoomID],[" + Time1 + "]) Values (@date,@room,1)", cn);
                Command.Parameters.AddWithValue("date", date);
                Command.Parameters.AddWithValue("room", rooms_combo.SelectedValue);


                Command.ExecuteNonQuery();


                try
                {
                    cn.Close();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }

            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

        }
  1. 在第3列(時間)之前有一個@
  2. 添加參數時,需要添加@
  3. 在insert語句中,您嘗試將true作為布爾值插入到time列中。
SqlCommand Command = new SqlCommand("INSERT INTO Slots (Date,RoomID,time) " + "Values (@date,@room,@time)", cn);

Command.Parameters.AddWithValue("@date", date);
Command.Parameters.AddWithValue("@room", rooms_combo.SelectedValue);
Command.Parameters.AddWithValue("@time", Time);

編輯后評論。 嘗試這個:

SqlCommand Command = new SqlCommand("INSERT INTO Slots (Date,RoomID,[" + Time1 + "]) " + "Values (@date,@room,@time)", cn);

Command.Parameters.AddWithValue("@date", date);
Command.Parameters.AddWithValue("@room", rooms_combo.SelectedValue);
Command.Parameters.AddWithValue("@time", true);

您不能在列列表中包含變量,我假設您希望@Time在值列表中關於true的位置。

編輯:要將時間作為列名注入,請執行一些C#字符串操作:

SqlCommand Command = new SqlCommand("INSERT INTO Slots (Date, RoomID, [" + time + "]) Values (@date, @room, 1)", cn);

再次編輯:true不是T-SQL關鍵字,T-SQL位列的值為1或0

現在,您不希望將時間添加為查詢的參數。

您將變量列為列名(@time)

編輯
就在這兒:

INSERT INTO Slots (Date, RoomID, --- >>> @time <<< ---危險將ROBINSON,危險

要修復它,您需要將其更改為表中的列名,否則將其刪除。

所以這樣的事情,例如:

INSERT INTO Slots (Date, RoomID, time)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM