在c#中使用SQL关键字MySqlCommand.CommandText
本文关键字:关键字 MySqlCommand CommandText SQL | 更新日期: 2023-09-27 18:17:50
我正在将我的存储过程移动到c#代码。在存储过程中,我有像
这样的东西Begin
SET @Id = null;
IF ?Status = 0 THEN SET ? ?DateToday = UTC_TIMESTAMP(); END IF;
SELECT * FROM TABLE
END
在c#代码中,我只是复制粘贴了Begin和END中的所有内容。一样,
MySqlCommand command = new MySqlCommand();
command.CommandText = @"SET @Id = null;
IF ?Status = 0 THEN SET ? ?DateToday = UTC_TIMESTAMP(); END IF;
SELECT * FROM TABLE"
我在If语句中有一个错误,说语法不正确。存储过程是工作的,但不是当我把它放在c#代码。
这不是存储过程的逻辑。顾名思义,存储过程是存储在数据库本身中的函数。你可以通过叫他们的名字来调用他们。
因此,你不能把存储过程函数代码放在你的c#代码中,我的意思是你不应该。
更新:如果您只想使用T-SQL语句(if-else
块等),请查看此链接。
如果您已经创建了一个存储过程,那么您可以使用如下的存储过程语法来调用它;
using (SqlConnection con = new SqlConnection(someconnectionstring)) {
using (SqlCommand cmd = new SqlCommand("myStoredProc", con)) {
cmd.CommandType = CommandType.StoredProcedure;
//If you have parameters in your SP, add like this else ignore below line
cmd.Parameters.Add("@myparam", SqlDbType.VarChar).Value = somevalue;
con.Open();
cmd.ExecuteNonQuery();
}
}