#c# #web-services #null #webmethod
Вопрос:
Я использую веб-метод с веб-сервисом, я хочу отправить в SQL пустой(нулевой) целочисленный параметр.
Столбец SQL Stock
имеет значение DEFAULT NULL
Выполнение int? stock
в методах C# удалит все поля ввода.
Как можно решить эту проблему ?
DAL.cs
public static bool AddProduct(string productName, string categoryName, double price,
int stock, string productDescription,
string productOverview, string productImage)
{
System.Data.SqlClient.SqlConnection conn = new SqlConnection(connetionString);
SqlDataAdapter adapter;
SqlCommand comm;
conn.Open();
comm = new SqlCommand("InsertProduct", conn);
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add(new SqlParameter("productName", productName));
comm.Parameters.Add(new SqlParameter("CategoryName", categoryName));
comm.Parameters.Add(new SqlParameter("Price", price));
comm.Parameters.Add(new SqlParameter("Stock", stock));
comm.Parameters.Add(new SqlParameter("ProductDescription", productDescription));
comm.Parameters.Add(new SqlParameter("ProductOverview", productOverview));
comm.Parameters.Add(new SqlParameter("ProductImage", productImage));
adapter = new SqlDataAdapter(comm);
DataSet dataset = new DataSet();
adapter.Fill(dataset, "products");
return true;
BLL.cs
public static string AddProduct(string productName, string categoryName, double price,
int stock, string productDescription,
string productOverview, string productImage)
{
bool addProduct = DAL.AddProduct(productName, categoryName, price,
stock, productDescription,
productOverview, productImage);
return new JavaScriptSerializer().Serialize(addProduct);
}
Веб-метод
[WebMethod]
public string AddProduct(string productName, string categoryName, double price,
int stock, string productDescription,
string productOverview, string productImage)
{
return BLL.AddProduct(productName, categoryName, price,
stock, productDescription,
productOverview, productImage);
}
Ошибка
Система.Номер.StringToNumber(String str, параметры стилей чисел, буфер и номер, информация о NumberFormatInfo, логический синтаксический анализ) System.Number.Система ParseInt32(Строка s, стиль NumberStyles, информация о NumberFormatInfo).Строка.Система.Иконописный.Система ToInt32(поставщик IFormatProvider).Преобразовать.Тип изменения(значение объекта, Тип преобразования, поставщик IFormatProvider) System.Web.Services.Протоколы.Скалярная материя.fromString(Строковое значение, тип типа) — Завершите отслеживание внутренней аномалии картриджа — — — System.Web.Services.Протоколы.Скалярная материя.Система fromString(Строковое значение, тип типа).Веб-сервисы.Протоколы.ValueCollectionParameterReader.Read(коллекция NameValueCollection) System.Web.Services.Протоколы.HtmlFormParameterReader.Read(запрос HttpRequest) System.Web.Сервисы.Протоколы.HttpServerПротокол.Параметры чтения() System.Web.Services.Протоколы.Обработчик веб-сервисов.CoreProcessRequest()
Комментарии:
1. Я думаю, что часть сообщения об ошибке отсутствует. Я ожидал бы, что он начнется с типа исключения (например, исключение NullReferenceException) и сообщения (например, ссылка на объект не установлена на экземпляр объекта), за которым следует трассировка стека, но похоже, что она начинается частично через трассировку стека.