Я эту хранимую процедуру:Преобразование типа данных NVARCHAR к Int
CREATE PROCEDURE SearchEmployee
@EmployeeID int,
@EmployeeName nvarchar(256),
@Address nvarchar(256),
AS
Select
EmployeeId, EmployeeName, Address
From
Employee
Where
EmployeeID = @EmployeeID OR
EmployeeName LIKE '%' + @EmployeeName+ '%' OR
Address LIKE '%' + @Address+ '%'
Тогда в моих Winforms я называю это так:
using (SqlCommand mySqlCommand1 = new SqlCommand("dbo.SearchEmployee", myDatabaseConnection))
{
mySqlCommand1.CommandType = CommandType.StoredProcedure;
{
mySqlCommand1.Parameters.AddWithValue("@EmployeeID", textBox1.Text);
mySqlCommand1.Parameters.AddWithValue("@EmployeeName", textBox1.Text);
mySqlCommand1.Parameters.AddWithValue("@Address", textBox1.Text);
}
}
Как я избежать ошибки
Ошибка преобразования типа данных nvarchar в int.
Когда пользователь вводит имя сотрудника вместо EmployeeID
?
Я попробовал это в моей хранимой процедуре:
EmployeeID = cast(@EmployeeID as varchar(10))
Потому что я буду только с помощью одного searchTextBox, который будет найти на каждом поле. Огромное спасибо :) –