#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
, тогда ваш код будет работать,
Это означает, что вы находитесь в воздухе и пытаетесь воспользоваться парашютом, которого нет у вас за спиной. Имеет ли это смысл для вас?