[英]How to check if a data is present in SQL Server table column where the data re inserted in inverted commas
[英]How to check if a row is present in SQL Server table or not?
我正在嘗試檢查SQL Server表中是否存在行。
如果該行存在(在特定的TicketID
),它應該顯示一個消息框,由於數據庫中已有條目,因此無法繼續進行。 但如果沒有,它應該插入一些記錄(在特定的TicketID
)。
我試過嘗試捕獲但是無法做到:
這是查詢代碼ticketID
例如硬編碼的ticketID
)
bool no;
try
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ST"].ConnectionString.ToString());
con.Open();
cmd.CommandText = "SELECT EngineerVisited from tblTicketTechnical where TicketID=1";
cmd.Connection = con;
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
bool = rdr.GetBoolean(0);
}
con.Close();
}
catch
{
MessageBox.Show("Cannot continue");
}
如果有人可以建議一個函數,如果找到行,該函數將返回true,否則返回false,我將不勝感激。
您應該在代碼中遵循與您用英語說明的邏輯相同的邏輯:如果已經有票證顯示消息,如果沒有,則插入一些數據。
var checkQuery = "SELECT COUNT(*) FROM tblTicketTechnical where TicketID=1";
var command = new OleDbCommand(checkQuery, con);
con.Open();
int count = (int)command.ExecuteScalar();
if(count > 0)
{
//Already exists, show message
}
else
{
var insertQuery = "INSERT INTO tblTicketTechnical(col1, col2) VALUES('val1', val2')";
con = new OleDbCommand(insertQuery, con);
con.ExecuteNonQuery();
}
請注意,這是寫在我腦海中而未經過測試。 我也沒有實現異常處理。 這只是為了展示如何執行您想要實現的目標的邏輯。
您可以使用HasRows財產SQLDataReader
。
只有在代碼拋出exception
才會執行catch
塊。 這里根本沒有發生。
代替Try / Catch使用if
語句並檢查您的查詢結果。
像這樣創建過程和代碼
IF NOT EXISTS (SELECT 1 FROM youtable WHERE id= @id)
BEGIN
RAISERROR ('Record Exists', 16, 2)
END
ELSE
Begin
INSERT INTO YOURTABEL(COLUM1,COLUM2) VALUES(VALUE1, VALUE2)
END
然后通過try catch您可以向用戶顯示消息
您可以使用DataTableReader.HasRows屬性
The HasRows property returns information about the current result set
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.