как устранить ОШИБКУ: ключ не может быть нулевым. Имя параметра: ключ в c #?

#c# #asp.net #mysql

#c# #asp.net #mysql

Вопрос:

Я использую базу данных MySQL, и я создал поле в моей таблице с именем ID , для которого установлено значение автоматического увеличения, а не null. Однако я получаю сообщение об ошибке как:

ОШИБКА: ключ не может быть нулевым. Имя параметра: ключ

Я указал datakeynames="ID" в своем GridView . В этом что-то не так?

Когда я ставлю точку останова в точке запроса и напрямую вставляю данные в mysql , они вставляются без каких-либо проблем.

Вот мое GridView объявление:

 <asp:GridView ID="grdUploadedFiles" runat="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="7" DataKeyNames="ID" ..>
  

И мой оператор SQL:

 INSERT into tbluploadedfilesdetail (FileType,FileName,FileExt,FilePath,WebUrl) VALUES (...)
  

это выдает эту ошибку в инструкции myobjcon.open()

 MySqlConnection objMyCon1 = new MySqlConnection();
objMyCon1.Open();
MySqlCommand cmd1 = new MySqlCommand(getSQL1, objMyCon1);
cmd1.ExecuteNonQuery();
objMyCon1.Close();
dbLoad();
  

Комментарии:

1. В качестве совета ознакомьтесь с этой статьей, которая является отличным руководством о том, как писать вопросы, чтобы получить хорошие ответы здесь, на SO: tinyurl.com/so-hints Написать хороший вопрос — само по себе искусство 🙂

Ответ №1:

Хорошо, мы наконец-то добрались до того места, где мы могли бы увидеть некоторый код, поэтому обратите внимание на это:

 MySqlConnection objMyCon1 = new MySqlConnection(); 
objMyCon1.Open(); 
  

Что должен открывать objMyCon1? Вы не предоставили своему объекту никакой информации о том, что он должен делать. Это, конечно, MySqlConnection, но ему нужно знать, где находится ваша база данных, прежде чем он сможет подключиться.

Ответ №2:

Вы создаете MySqlConnection objMyCon1 = new MySqlConnection(); и пытаетесь открыть, но вам нужно указать строку подключения, я думаю (нашел что-то знакомое здесь).

Комментарии:

1. Я полагаю, что строка подключения опущена, если вы прочтете вопрос еще раз, вы найдете текст «Когда я ставлю точку останова …», который предполагает, что эта ошибка возникает в режиме выпуска, но не во время отладки.

Ответ №3:

Сначала у вас есть подключение к вашей базе данных, поэтому вам нужно создать ConnectionString , тогда ваш код будет работать,

Это означает, что вы находитесь в воздухе и пытаетесь воспользоваться парашютом, которого нет у вас за спиной. Имеет ли это смысл для вас?