Привет, я пытаюсь сохранить все данные в моей базе данных, включая изображение. Тип данных моего изображения - longblob. Я ошибаюсь с кодами? простите меня, я только новичок, надеюсь, кто-то сможет мне помочь, спасибо.
try {
string myConnection = "datasource=localhost; port=3306; username=root;password=admin; database=dbstudents;";
MySqlConnection myConn = new MySqlConnection(myConnection);
//Images Conversion : Datatype in my database is LONGBLOB
byte[] img = null;
FileStream fs = new FileStream(imgLoc, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
img = br.ReadBytes((int)fs.Length);
// this is a sample query for update statement and update
string Query = "UPDATE tblstudent RIGHT JOIN tbltransact ON tblstudent.StudentID = tbltransact.EnrolleeID SET FirstName=@firstName , LastName=@lastName , MiddleName=@middleName ,ContactNo=@contactNo ,Address=@address ,Age=@age ,Guardian=@guardian,studentPic=@studentPic,PendingBalance=@pendingBalance, WHERE StudentID=@studentID";
MySqlCommand cin = new MySqlCommand(Query, myConn);
myConn.Open();
if (cin.ExecuteNonQuery() == 1)
{
cin.Parameters.AddWithValue("@studentID", int.Parse(search.Text));
cin.Parameters.AddWithValue("@firstName", firstname.Text);
cin.Parameters.AddWithValue("@lastName", lastname.Text);
cin.Parameters.AddWithValue("@middleName", middlename.Text);
cin.Parameters.AddWithValue("@contactNo", ContactNum.Text);
cin.Parameters.AddWithValue("@address", address.Text);
cin.Parameters.AddWithValue("@age", int.Parse(age.Text));
cin.Parameters.AddWithValue("@guardian", guardian.Text);
cin.Parameters.AddWithValue("@studentPic", img );
cin.Parameters.AddWithValue("@pendingBalance", int.Parse(Balance.Text));
myConn.Close();
}
}catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
вот и все, что я сделал, а также моя база данных

Я просто попробовал, что у меня есть исходный код, который работает, но слишком сложен
Укажите в вопросе точную ошибку и место ее возникновения.
Убедитесь, что имена полей в C# точно соответствуют именам полей базы данных, включая строчные и прописные буквы.
@StephenKennedy это в заголовке, сэр, и это встречается в моих параметрах executenonquery





Вы добавляете свои параметры после, выполняя команду. Это никогда не сработает. На данный момент вы звоните в ExecuteNonQuery(), ни один из параметров еще не заполнен.
Вы также оставляете открытым файловый поток. Используйте File.ReadAllBytes(path), чтобы не обрабатывать потоки вручную для чтения всего содержимого файла.
try
{
String myConnection = "datasource=localhost; port=3306; username=root;password=admin; database=dbstudents;";
//Images Conversion : Datatype in my database is LONGBLOB
Byte[] img = File.ReadAllbytes(imgLoc);
// this is a sample query for update statement and update
String Query = "UPDATE tblstudent RIGHT JOIN tbltransact ON tblstudent.StudentID = tbltransact.EnrolleeID SET FirstName=@firstName , LastName=@lastName , MiddleName=@middleName ,ContactNo=@contactNo ,Address=@address ,Age=@age ,Guardian=@guardian,studentPic=@studentPic,PendingBalance=@pendingBalance, WHERE StudentID=@studentID";
MySqlCommand cin = new MySqlCommand(Query, myConn);
using (MySqlConnection myConn = new MySqlConnection(myConnection))
{
myConn.Open();
cin.Parameters.AddWithValue("@studentID", Int32.Parse(search.Text));
cin.Parameters.AddWithValue("@firstName", firstname.Text);
cin.Parameters.AddWithValue("@lastName", lastname.Text);
cin.Parameters.AddWithValue("@middleName", middlename.Text);
cin.Parameters.AddWithValue("@contactNo", ContactNum.Text);
cin.Parameters.AddWithValue("@address", address.Text);
cin.Parameters.AddWithValue("@age", Int32.Parse(age.Text));
cin.Parameters.AddWithValue("@guardian", guardian.Text);
cin.Parameters.AddWithValue("@studentPic", img );
cin.Parameters.AddWithValue("@pendingBalance", Int32.Parse(Balance.Text));
if (cin.ExecuteNonQuery() == 0)
{
// Handle query failure here
MessageBox.Show(String.Format("No patient found to update for ID {0}", search.Text));
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
простите меня за плохое кодирование, у меня также были проблемы с получением изображения longblob, это будет большим подспорьем, если кто-нибудь сможет мне помочь