我正在開發一個小項目作爲業餘愛好並走向死衚衕。我正在使用Visual Studio和SQL Server Management Studio。每年更改時將列添加到SQL Server數據庫
我使用實體框架模型,以便能夠將數據條目添加到具有4列的表中。其中兩個都應該記錄的數據錄入,正在發生的2017年是這樣的:
if (CheckBoxBulb.Checked == true)
{
string roomNo = "";
roomNo = DropDownList1.SelectedValue.ToString();
testtable2017 entry = new testtable2017();
SqlConnection dataConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["iPadLoanConnectionString2"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE testtable2017 SET Last_Bulb_Replaced_2017 = '" + Calendar1.SelectedDate.ToString() + "' WHERE Room_No ='" + roomNo + "'";
cmd.Connection = dataConnection;
dataConnection.Open();
cmd.ExecuteNonQuery();
dataConnection.Close();
iPadEntities db = new iPadEntities();
db.testtable2017.Add(entry);
db.SaveChanges();
}
else if(CheckBoxFilter.Checked == true)
{
string roomNo = "";
roomNo = DropDownList1.SelectedValue.ToString();
testtable2017 entry = new testtable2017();
SqlConnection dataConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["iPadLoanConnectionString2"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "UPDATE testtable2017 SET Last_Cleaned_Filter_2017 = '" + Calendar1.SelectedDate.ToString() + "' WHERE Room_No ='" +roomNo +"'";
cmd.Connection = dataConnection;
dataConnection.Open();
cmd.ExecuteNonQuery();
dataConnection.Close();
iPadEntities db = new iPadEntities();
db.testtable2017.Add(entry);
db.SaveChanges();
}
到目前爲止好,它是可以正常使用,但讓說,當一年的變化,到2018年,我想創建兩列是將會保存2018年以前記錄的所有數據。有什麼辦法可以達到這個目的嗎?如果是的話,我怎樣才能操縱C#中的代碼,然後開始將任何數據條目保存到新創建的列中?
謝謝
不要這樣做,這是可怕的設計。只需將日期保存在「日期/日期時間(2)」列中即可。 – HoneyBadger
您認爲如何在今年製作單獨的專欄?當你需要查詢的數據 – Steve
UPDATE testtable2017 SET Last_Bulb_Replaced_2017 =這隻會給你更多的問題 ' 「+ Calendar1.SelectedDate.ToString()+」' WHERE Room_No ='」 + roomNo + 「'」; < - 這就是超級危險,並開放SQL注入去閱讀https://stackoverflow.com/a/30367283/34092 – mjwills