我有一段代碼向數據庫發送一些信息,這些信息是我在將代碼運行到數據庫時編寫的,現在我需要檢查數據我插入數據庫已經存在,如果是的話,我必須更新它。我會在下面留下我的代碼,這樣我可以更容易地爲您提供幫助。如果你需要更多的代碼,隨時問我會提供給你。檢查某些數據是否已經是數據庫,如果有,更新數據
try
{
conn.Open();
string sqlQuerry = @"INSERT INTO UXMenu(TransDocument, TransSerial, TransDocNumber, PartyName, PartyLocalityID, TotalAmount, ShipToPostalCode, Estado , IDZona ,Bonus,NumFac) VALUES (@transdocument, @transserial, @transdocnumber, @partyname, @partylocal, @totalamount, @shiptocode, @estado ,@IDZona ,@Bonus,@NumFac)";
SqlCommand SQLcm = new SqlCommand();
SQLcm.Connection = conn;
SQLcm.CommandText = sqlQuerry;
SQLcm.CommandType = CommandType.Text;
SQLcm.Parameters.AddWithValue("@transdocument", transdocument);
SQLcm.Parameters.AddWithValue("@transserial", transserial);
SQLcm.Parameters.AddWithValue("@transdocnumber", transaction.TransDocNumber);
SQLcm.Parameters.AddWithValue("@partyname", nomecli);
SQLcm.Parameters.AddWithValue("@partylocal", locality);
SQLcm.Parameters.AddWithValue("@totalamount", transaction.TotalAmount);
SQLcm.Parameters.AddWithValue("@shiptocode", shipto);
SQLcm.Parameters.AddWithValue("@estado", estado);
SQLcm.Parameters.AddWithValue("@IDZona", "0");
SQLcm.Parameters.AddWithValue("@Bonus", "0");
SQLcm.Parameters.AddWithValue("@NumFac", "0");
SQLcm.ExecuteNonQuery();
MessageBox.Show("inseriu dados");
conn.Close();
}
catch (Exception ex)
{
throw ex;
}
}
更新1:
這是我如何創建表:
using (SqlConnection conn = new SqlConnection(ConecçãoDB))
{
conn.Open();
SqlCommand command = new SqlCommand("IF OBJECT_ID('UXMenu', 'U') IS NULL CREATE TABLE UXMenu(TransDocument varchar(5), TransSerial varchar(5), TransDocNumber float PRIMARY KEY, PartyName varchar(60), PartyLocalityID varchar(5), TotalAmount varchar(25), ShipToPostalCode varchar(35), Estado int, IDZona varchar(15),Bonus varchar(15),NumFac varchar(15));", conn);
command.ExecuteNonQuery();
MessageBox.Show("tabela criada menu");
conn.Close();
就個人而言,我找到一個很好的解決方案中使用存儲過程,你查一鍵行是否存在,並執行'UPDATE'或'INSERT '根據它。 –
個人而言,我喜歡改變歷史。所以我會添加一個時間戳並且只用實際的時間戳插入。選擇時,篩選每個條目的最新時間戳(或相應地創建視圖)。這使得一個簡單的「撤消」和「誰改變了什麼時間」。 – Fildor
就我個人而言,我會編寫'AddOrUpdate'方法,其中包含使用主鍵進行復雜檢查,以檢查* local *數據庫是否已經擁有該項並插入或更新。 – Sinatr