C# и SQL Server: получение ошибки в хранимой процедуреC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# и SQL Server: получение ошибки в хранимой процедуре

Сообщение Anonymous »

Я работаю над проектом C# с базой данных SQL Server. У меня есть хранящаяся процедура Prrole , которая выполняет insert , обновление и удаление операции в таблице tblrole . Столбец Roleid является столбцом идентификации, поэтому он не требуется для вставки , но требуется для обновления и delete .
Когда я вызываю хранимую процедуру из моей C# Cod />system.data.sqlclient.sqlexception (0x80131904): процедура или функция 'prrole' ожидает параметр '@Roleid', который не был предоставлен < /p>
< /blockquote>
Здесь не была предоставлена ​​Procure < /p>: < /p>
здесь хранящаяся процедура < /code>: < /p>
Здесь хранятся процедура < /prole < /code>: < /p>
.CREATE PROCEDURE [dbo].[prcRole]
@Operation NVARCHAR(100),
@RoleID INT,
@RoleName NVARCHAR(255),
@User INT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION;

IF @Operation = 'INSERT'
BEGIN
INSERT INTO tblRole (RoleName, CreatedBy, DateCreated, LastEditedBy,DateEdited)
VALUES (@RoleName, @User, GETDATE(), @User, GETDATE());
END

IF @Operation = 'UPDATE'
BEGIN
UPDATE tblRole
SET RoleName = @RoleName, LastEditedBy = @User, DateEdited = GETDATE()
WHERE RoleID = @RoleID;
END

IF @Operation = 'DELETE'
BEGIN
DELETE FROM tblRole WHERE RoleID = @RoleID;
END

SELECT * FROM tblRole;
COMMIT;
END TRY
BEGIN CATCH
ROLLBACK;
THROW;
END CATCH; END GO
< /code>
Вот мой код C#, который вызывает хранимую процедуру: < /p>
private DataTable prcRole(string Operation, Role role)
{
DataTable dt = new DataTable();

try
{
using (SqlConnection con = new SqlConnection("Server=localhost\\MSERVERSQL;Database=DBPharmacy;Trusted_Connection=True;"))
{
using (SqlCommand cmd = new SqlCommand("prcRole", con))
{
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.AddWithValue("@Operation", Operation);
cmd.Parameters.AddWithValue("@RoleID", role.RoleID);
cmd.Parameters.AddWithValue("@RoleName", role.RoleName);

cmd.Parameters.AddWithValue("@User", 1); // 1 will be replaced with actual logged in user

using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

return dt;
}

Вот кнопку обработчика Button1_click , который запускает операцию вставки - Тип пользователя в имени роли в текстовом поле и нажмите кнопку «Добавить», где его необходимо добавить в базу данных:
private void button1_Click(object sender, EventArgs e)
{
try
{
string roleName = txtRoleName.Text.Trim(); // Get the role name from the text box

if (string.IsNullOrEmpty(roleName))
{
MessageBox.Show("Please enter a role name.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}

Classes.Role newRole = new Classes.Role(0, roleName);

newRole.INSERT();

MessageBox.Show("Role added successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

txtRoleName.Clear();
}
catch (Exception ex)
{
MessageBox.Show($"Error: {ex.Message}", "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... -procedure
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Существует ли ограничение на количество строк, которые можно передать хранимой процедуре SQL Server в параметре с таблич
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Повторные ошибки сбора в хранимой процедуре в MySQL
    Anonymous » » в форуме MySql
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Dapper не возвращает значение из try-catch в хранимой процедуре
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Оптимизация производительности запросов в хранимой процедуре
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Php 8.1 + mysql 5.7: обработчик ошибок в хранимой процедуре не работает
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»