Ошибка: Параметризованный запрос «INSERT INTO Altitude (DataID, Height) VALUES (@ID, @Height)» ожидает значение параметра, которое не было предоставлено - PullRequest
1 голос
/ 22 марта 2012

Я использую базу данных SQL Server CE и язык C #. У меня есть таблица с напечатанным столбцом bigint . Когда я использую цикл foreach для вставки некоторых данных:

 foreach (int alt in lsAltitudes)
 {
     Query =   "INSERT INTO Altitude (DataID, Height) " +
                "VALUES (@ID, @Height) ";

     using (var SQLCmd = new SqlCeCommand(Query))
     {
         SQLCmd.Parameters.Add("@ID", DataID);
         SQLCmd.Parameters.Add("@Height", alt);
         con.CeExecuteNonQuery(SQLCmd);
     }
 }

Получение ошибки: Параметризованный запрос «INSERT INTO Altitude (DataID, Height) VALUES (@ID, @Height)» ожидает значение параметра, которое не было предоставлено.

Кстати, тип моей переменной DataID long . Я думаю, что это как-то о преобразовании bigint и long value. Но я не уверен.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Если я не ошибаюсь, так и должно быть

using (var SQLCmd = new SqlCeCommand(Query)) 
{ 
     SQLCmd.Parameters.Add("@ID", SqlDbType.BigInt).Value = DataID; 
     SQLCmd.Parameters.Add("@Height", SqlDbType.Int).Value = alt; 
     con.CeExecuteNonQuery(SQLCmd); 
} 
1 голос
/ 22 марта 2012

Вы можете использовать перегрузку метода Add и явно указать тип данных

command.Parameters.Add("@ID", SqlDbType.BigInt);
command.Parameters["@ID"].Value = DataID
...