Можно ли добавить статический параметр в запрос SQL, используя SqlCommand
в C #?
Я пытаюсь либо INSERT
, либо UPDATE
таблица базы данных, в зависимости от того, уже клиентсуществует.
Я пытаюсь сделать UpdateType
= 1, если INSERT
выполнено ИЛИ 2, если UPDATE
выполнено.
Есть ли способ удалить динамический параметр @UpdateType
и просто статическое значение 1 или 2 для запросов INSERT или UPDATE?
Вот пример запроса:
string sqlQuery = "IF NOT EXISTS(SELECT 1 FROM Client WHERE [ClientID] =" +
"@ClientID) " +
"INSERT INTO Client (ClientId, LastName, FirstName, UpdateType)" +
"VALUES (@ClientID, @LastName, @FirstName, @UpdateType)" +
"ELSE " +
"UPDATE Client " +
"SET [ClientID] = @ClientID, [LastName] = @LastName, [FirstName] = "+
"@FirstName, [UpdateType] = @UpdateType"+
"WHERE ClientID = ClientID;";
using (SqlCommand MyCommand = new SqlCommand(sqlQuery, SQLConn))
{
MyCommand.Parameters.Add("@ClientID", SqlDbType.VarChar);
MyCommand.Parameters.Add("@LastName", SqlDbType.VarChar);
MyCommand.Parameters.Add("@FirstName", SqlDbType.VarChar);
MyCommand.Parameters.Add("@UpdateType", SqlDbType.Int);
try
{
SQLConn.Open();
foreach (DataRow row in SourceData.Rows)
{
MyCommand.Parameters["@ClientID"].Value = row["ClientId"].ToString();
MyCommand.Parameters["LastName"].Value = row["LastName"].ToString();
MyCommand.Parameters["@FirstName"].Value = row["FirstName"].ToString();
MyCommand.Parameters["@UpdateType"].Value = Convert.ToInt32(row["UpdateType"]);
MyCommand.ExecuteNonQuery();
}
}
catch
{
....
}
}
Любая помощь по этому вопросу очень важна.