[英]How to call mysql stored procedure in C#
我想從c#調用一個Mysql存儲過程。 我在mysql查詢瀏覽器中運行相同的程序。 這是關於從給定的輸入年,月,日與當前日期獲得到期日。 這是輸出
DELIMITER $$
DROP PROCEDURE IF EXISTS `passbook`.`maturity_date` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `maturity_date`(IN `stdate`
DATE, IN `adyear` INT(4), IN `amonth` INT(2), IN `adays` INT(2), INOUT
`matdate` DATE)
NO SQL
Begin
declare new_date , pstdate date;
set new_date = stdate;
if adyear > 0 then
SELECT date_add(stdate, INTERVAL adyear year) into pstdate;
set new_date = pstdate;
end if;
if amonth > 0 then
SELECT date_add(new_date, INTERVAL amonth MONTH) into pstdate;
set new_date = pstdate;
end if;
if adays > 0 then
SELECT date_add(new_date, INTERVAL adays DAY) into pstdate;
set new_date = pstdate;
end if;
Set matdate = new_date;
Select matdate;
end $$
DELIMITER ;
嘗試這個:
var ConnectionString="Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword";
var sqlParameters = new List<SqlParameter>();
var storedProcedureName = "SPName";
//add parameters with value and type here
sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@adyear", Value = adyear});
sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@amonth", Value = amonth});
sqlParameters.Add(new SqlParameter { SqlDbType = SqlDbType.Int, ParameterName = "@adys ", Value = adys });
//execute store procedure here
using (var connection = new SqlConnection(ConnectionString))
using (var command = new SqlCommand(storedProcedureName, connection) { CommandTimeout = 160, CommandType = commandType })
using (var dataAdaptor = new SqlDataAdapter(command))
{
command.Parameters.AddRange(sqlParameters);
connection.Open();
dataAdaptor.Fill(dS);
}
你也可以使用Mysql.Data
我相信這是最簡單的方法。 你不需要任何其他東西來使用mysql數據庫。
PM> Install-Package MySql.Data
您可以將連接字符串存儲在文件中。 只需創建一個文件並將連接字符串放在其上。 然后在靜態類中讀取它。 這樣的事情:
CS = File.ReadAllText(YourDataBaseConfigFilePath);
然后將它用作連接字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.