- Remove From My Forums
Удаление строки из таблицы
-
Вопрос
-
Есть таблица на главном представлении Index, в конроллере пытаюсь удалить запись из таблицы, при этом ошибок не возникает, но при запуске и нажатии соответствующей кнопки, происходит ошибка. запись в контроллере:
public ActionResult Delete(int kod)
{
Obsha9 kodfio = _db.Obsha9.Find(kod);
if (kod != null)
{
_db.Obsha9.Remove(kodfio);
_db.SaveChanges();
}
return RedirectToAction(«Index»);<<<<<<ОШИБКА
Ошибка сервера в приложении ‘/’.
Словарь параметров содержит запись со значением NULL для параметра «kod» типа «System.Int32», не допускающего значение NULL, для метода «System.Web.Mvc.ActionResult Delete(Int32)» в «ReitingTeacher.Controllers.HomeController».
Необязательный параметр должен иметь ссылочный тип, тип, допускающий значение NULL, либо он должен быть объявлен как необязательный параметр.
Имя параметра: parametersОписание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System.ArgumentException: Словарь параметров содержит запись со значением NULL для параметра «kod» типа «System.Int32», не допускающего значение NULL, для метода «System.Web.Mvc.ActionResult
Delete(Int32)» в «ReitingTeacher.Controllers.HomeController». Необязательный параметр должен иметь ссылочный тип, тип, допускающий значение NULL, либо он должен быть объявлен как необязательный параметр.
Имя параметра: parameters.-
Изменено
28 мая 2013 г. 13:58
-
Изменено
Ответы
-
Ну развезли тут цирк))
1 посмотри в свой роутинг — там скорее всего увидишь чтото типа такого
«{controller}/{action}/{id}»так вот id тут ключевое
и у тебя передается в твой метод id=12345/*kod*/, а метод не принимает id а принимает kod
соответственно либо тут исправь
@Html.ActionLink(«Удалить», «Delete», new { kod= c.KodFIO }) и добавь роутинг с
«{controller}/{action}/{kod}»либо тут исправь
public ActionResult Delete(int id)
{
Obsha9 kodfio = _db.Obsha9.Find(id);
// if (id != null)
// {
_db.Obsha9.Remove(id);
_db.SaveChanges();
//}
return RedirectToAction(«Index»);
P.S. с исправлением роутинга так неполучится
«{controller}/{action}/{kod}» — конфликт пойдет c id
в общем запомни что существует связь по именам которую нужно соблюдать — если в ссылке стоит id значит и в методе должен стоять id а не int yaSralNaEtoPravilo-
Изменено
stuhin
31 мая 2013 г. 9:41 -
Предложено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
3 июня 2013 г. 7:16 -
Помечено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
4 июня 2013 г. 10:29
-
Изменено
-
проблема решена проще чем ожидалось
public ActionResult Delete(int? kod1) { Obsha9 kod = _db.Obsha9.Find(kod1); if (kod != null) { _db.Obsha9.Remove(kod); _db.SaveChanges(); } return RedirectToAction("Index");
@Html.ActionLink("Удалить", "Delete", new { id= c.Kod, kod1=c.Kod})
-
Предложено в качестве ответа
YatajgaModerator
1 июня 2013 г. 7:09 -
Помечено в качестве ответа
Maksim MarinovMicrosoft contingent staff, Moderator
4 июня 2013 г. 10:29
-
Предложено в качестве ответа
Этот путь к картинке пустой(налл).
Напиши простой метод который двигается от большего разрешения к меньшему и если тот не нулл — то возвращает адрес картинки который ты можешь добавлять в свой лист.
public static string GetTheBiggestSizeUrlPhoto(Photo photoObj)
{
if (photoObj.PhotoSrc != null)
{
return photoObj.PhotoSrc.OriginalString;
}
if (photoObj.Photo2560 != null)
{
return photoObj.Photo2560.OriginalString;
}
if (photoObj.Photo1280 != null)
{
return photoObj.Photo1280.OriginalString;
}
if (photoObj.Photo807 != null)
{
return photoObj.Photo807.OriginalString;
}
if (photoObj.Photo604 != null)
{
return photoObj.Photo604.OriginalString;
}
if (photoObj.Photo130 != null)
{
return photoObj.Photo130.OriginalString;
}
return photoObj.Photo75.OriginalString;
}
Учись дебажится.
Потом отдельно пишешь метод для скачивания картинки с адреса и можешь достать сам битмап/
public static Bitmap GetPhotoBitmapFromUrl(string url)
{
if (url != string.Empty)
{
try
{
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
Bitmap bitmapImg = new Bitmap(responseStream);
return bitmapImg;
}
catch (WebException)
{
}
}
return new Bitmap(1, 1);
}
1 / 1 / 0 Регистрация: 20.01.2019 Сообщений: 18 |
|
1 |
|
.NET 4.x 17.11.2021, 11:04. Показов 5532. Ответов 6
Здравствуйте. В ноябре 20-го года делал программу-тест с простым графическим интерфейсом, считывающую вопросы из txt-файла (полный проект во вложении). Точно помню, что она работала, зачёт по ней сдан. Сейчас она мне понадобилась для другой работы, но при решении 7-го вопроса теста из 10 Visual Studio выдаёт ошибку: System.ArgumentNullException: «Значение не может быть неопределенным. Имя параметра: String» (скрин во вложениях). Миниатюры
0 |
2728 / 1644 / 871 Регистрация: 14.04.2015 Сообщений: 5,616 |
|
17.11.2021, 11:43 |
2 |
Сообщение было отмечено metalphoenix как решение Решениеmetalphoenix, лишние пустые строки из файла уберите
1 |
1 / 1 / 0 Регистрация: 20.01.2019 Сообщений: 18 |
|
17.11.2021, 12:18 [ТС] |
3 |
AndreyVorobey, вы имеете в виду пустые строки в конце текстового файла с вопросами «t.txt»? Убрал, не помогло. Добавлено через 5 минут
0 |
1 / 1 / 0 Регистрация: 20.01.2019 Сообщений: 18 |
|
17.11.2021, 12:19 [ТС] |
4 |
Скрин Миниатюры
0 |
1 / 1 / 0 Регистрация: 20.01.2019 Сообщений: 18 |
|
17.11.2021, 12:26 [ТС] |
5 |
AndreyVorobey, Благодарю. Оказывается, в каталоге был дубль текстового файла, строки надо было убирать в нём.
0 |
2728 / 1644 / 871 Регистрация: 14.04.2015 Сообщений: 5,616 |
|
17.11.2021, 12:28 |
6 |
metalphoenix, ну так это не дубль, а тот файл, с которого считываются данные. нет? в первом файле было 10 вопросов, а во втором 7, и на нем ошибка была. мне казалось, это и так было понятно
0 |
1 / 1 / 0 Регистрация: 20.01.2019 Сообщений: 18 |
|
17.11.2021, 12:33 [ТС] |
7 |
AndreyVorobey, да, именно так. Пустые строки были в обоих. Видимо, файл с 10 вопросами я ранее сделал как резерв для изменения вопросов в будущем, а сейчас не сразу понял, что данные считываются не с него, а из того, в котором 7 вопросов. Ещё раз благодарю вас за оперативную помощь, хорошего вам дня)
0 |
Как исправить ошибку?
Как исправить ошибку?
System.ArgumentNullException: "Значение не может быть неопределенным. Имя параметра: entity"
WPF форма содержащая 8 текст боксов
<StackPanel Grid.Column="2">
<TextBox Margin="5" Width="100" Text="{Binding SelectedOrder.КодЗаказа}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодКлиента}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодМаршрута}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодВодителя}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.КодТС}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.Дата}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.ДатаНачала}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<TextBox Margin="10" Width="100" Text="{Binding SelectedOrder.ДатаОкончания}" FontSize="16" FontWeight="Normal" FontStyle="Normal"/>
<Button Margin="50" Width="100" Content="Создать"
Command="{Binding AddCommand}"
/>
</StackPanel>
класс ViewModel, который реализует передачу данных из представления в модель
public class OrderViewModel : INotifyPropertyChanged
{
private ObservableCollection<Заказ> orderList; //список записей в таблице Заказ
private Заказ selectedOrder; //конкретный запись в Заказ
private TransportCompanyEntities transportCompanyEntities; // контекст?
public Заказ SelectedOrder
{
get { return selectedOrder; }
set
{
selectedOrder = value;
OnPropertyChanged(nameof(SelectedOrder));
}
}
public ObservableCollection<Заказ> OrderList
{
get { return orderList; }
set
{
orderList = value;
OnPropertyChanged(nameof(OrderList));
}
}
public OrderViewModel()
{
transportCompanyEntities = new TransportCompanyEntities();
LoadOrders();
}
private void LoadOrders()
{
OrderList = new ObservableCollection<Заказ>(transportCompanyEntities.Заказ);
}
private RelayCommand addCommand;
public RelayCommand AddCommand
{
get
{
return addCommand ??
(addCommand = new RelayCommand(obj =>
{
transportCompanyEntities.Заказ.Add(SelectedOrder);
transportCompanyEntities.SaveChanges();
}));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class RelayCommand{}
Ошибка:
System.ArgumentNullException: "Значение не может быть неопределенным. Имя параметра: entity"
-
Вопрос заданболее года назад
-
930 просмотров
Пригласить эксперта
Значение не может быть неопределенным. Имя параметра: entity
Не оставлять entity
неопределённым. Или использовать значение по-умолчанию, или разрешить быть неопределённым.
-
Показать ещё
Загружается…
24 июн. 2023, в 23:21
5000 руб./за проект
24 июн. 2023, в 21:49
1000 руб./за проект
24 июн. 2023, в 18:21
30000 руб./за проект
Минуточку внимания
- Remove From My Forums
-
Вопрос
-
Доброго времени суток
ОС 2008 r2 standart
sql x64 2008 r2
Имею такую ошибку
Значение не может быть неопределенным.
Имя параметра: viewInfo (Microsoft.SqlServer.Management.SqlStudio.Explorer)——————————
Расположение программы:в Microsoft.SqlServer.Management.SqlStudio.Explorer.ExplorerViewDescriptor..ctor(IFactoryService factoryService, INavigationViewInfo viewInfo, String urnPath, IDictionary`2 allEntities)
в Microsoft.SqlServer.Management.SqlStudio.Explorer.NavigationService.GetView(String urnPath)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.<GetColumnsFromNavigationService>d__f.MoveNext()
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.AddFields(List`1 list, IEnumerable`1 fields, IDictionary`2 allValidFields, AddFieldsFlags flags)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.GetFields(INodeInformation source, Dictionary`2& allValidColumns)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.BuildDynamicItemWithQuery(IList`1 nodes, INodeInformation source, INavigableItem sourceItem, String urnQuery, Boolean registerBuilder, Boolean registerBuiltItems)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.BuildDynamicItem(IList`1 nodes, INodeInformation source, INavigableItem sourceItem, IFilterProvider filter)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.Build(IList`1 nodes, INodeInformation source, INavigableItem sourceItem, IFilterProvider filter)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.RequestChildren(IGetChildrenRequest request)
в Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren(WaitHandle quitEvent)скачал process explorer
зашел в ssms.exe во вкладку strings
искал по тегу not found и нашел там %wZ program not found — skipping AUTOCHECK
прошу помочь разобраться
Ответы
-
У меня появилась мысль.
Установившик не давал первоначально установить sql т.к. жаловался на отствутвие dll (не могу сказать какой) в папке NET Framework 2.0.50727 , и я взял из соседней папки (NET Framework 4) аналогичный dll, вставил в папку и установил sql server. Как
считаете это могло повлиять ?Конечно! Ещё и mscorelib. Нельзя так делать, DLL в папке 2.0… и папке 4… используют разные версии .Net. Обратной совместимости нет.
Переустановите .Net на компе, это должно помочь.
-
Предложено в качестве ответа
26 июля 2011 г. 18:07
-
Помечено в качестве ответа
Dmitry Davydov
27 июля 2011 г. 13:45
-
Предложено в качестве ответа
-
Решил проблему, как всегда через …
sql удалил полностью
Пытался удалить продукты .NET сервер отказал, пытался воспользоваться установщиком .NET Framework версии 2, отказал, сказав что все уже установлено в комплекте с ОС (хотя папка пустовата была).
Перенес файлы .NET версии 2 из ОС 2008 (другого сервера)
Переустановил sql, не помогло.
Снес и поставил sql express 2008 (которая ещё требует сразу обновления до SP1)
Удалил экземпляр, оставив средства управления, т.к. базы не цеплялись на него (конфликт база версии 661 а цеплять можно только не выше 655)
И установил уже экземпляр стандарта, без доп. модулей.
Все работает теперь. Но как видите через ж…
-
Помечено в качестве ответа
Dmitry Davydov
27 июля 2011 г. 13:45
-
Помечено в качестве ответа