Я пытаюсь передать переменную, которую я собираю на C #, в параметр в SQL. Я пробовал несколько разных способов, которые видел в Интернете, чтобы попытаться передать его, но ни один из них не сработал. Мои C # и SQL ниже.
C#:
using (SqlConnection conn = new SqlConnection(connection here)) {
string getCell = GridView.GetFocusedRowCellDisplayText(IDColumn);
int ID = int.Parse(getCell)
string spName = "spNameHere"
SqlCommand comm = SqlCommand(spName, conn);
comm.Parameters.Add("@ID", SqlDbType.Int);
comm.Parameters["@ID"].Value = ID;
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
SQL:
Create Procedure [dbo].[spName]
@ID int
As
Begin
Set NOCOUNT ON;
SET @ID = @ID;
IF EXISTS (SELECT 1 FROM table1 WHERE column = @ID)… (irrelevant code here that the parameter doesn’t apply to here)
FROM table1 WHERE column = @ID;...
END
Я получаю ошибку
System.Data.SqlClient.SqlException 'Процедура или функция ожидают параметр, который не был предоставлен'
comm.CommandType = CommandType.StoredProcedure
- person D Stanley   schedule 08.07.2021SET @ID = @ID;
интересно, для чего это? Знаете ли вы, что параметры можно сократить доcomm.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
- person Charlieface   schedule 08.07.2021