У меня есть sql Процедура сохранения с выходным параметром. Я использовал этот выходной параметр, чтобы показать сообщение от внутреннего интерфейса к внешнему приложению. а также я использовал эту функциональность в C# коде, она отлично работает в соответствии с моим требованием. Я хотел бы знать, как использовать эти функции в "NodeJS и React Apps" .
Пожалуйста, проверьте мою нижеприведенную sql процедуру хранения и C# кодирование, которое я сделал. Это будет очень полезно для всех node js и отреагирует js разработчика на реализацию этого.
SQL Процедура сохранения с выходным параметром: -
Create Procedure [dbo].[SpMenuParent] (
@MenuId Int,
@Message varchar(75) output,
@MenuName nvarchar(75)
) as
Begin
If (@MenuId = 0)
begin
if (Select Count(*) from MenuMaster Where (MenuName = @MenuName))=0
begin
Insert Into MenuMaster(ModuleId, MenuName,ParentId,IconCSS)Values(1,@MenuName,0, 'fa fa-dashboard')
Set @MenuId = Cast(@@IDENTITY As Int)
end
else
Set @Message = 'Duplicate Entry Not Allowed' // This will display in front end apps
End
else
Update MenuMaster Set MenuName =@MenuName Where (MenuId = @MenuId)
End
C# Код для получения выходного параметра из процедуры хранения: -
private void SaveRecord()
{
try
{
string StrMessage;
using (DbManager Db = new DbManager())
{
StrMessage = Db.SetSpCommand("SpMenuParent",
Db.InputOutputParameter("@Message", ""),
Db.InputParameter("@MenuId", IntMenuId),
Db.InputParameter("@MenuName", TxtName.Text)).ExecuteScalar<string>(ScalarSourceType.OutputParameter);
Db.Dispose();
Db.Close();
if (!StrMessage="") MessageBox.Show(StrMessage); // this line get the message from sql store procedure and show it to end user
}
}
catch(Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}
Node JS Код: -
app.post('/createmenu', async (req, res, next) => {
try {
new sql.Request(conn)
.input('message','')
.input('menuid', req.body.menuid)
.input('menuname', req.body.menuname)
.query(SpMenuParent);
}
res.status(201).json({ data: 'menu created' });
});
} catch (error) {
console.log(error);
res.status(400).json({ error: error });
}
});