簡體   English   中英

我在executenonquery mysql.dll期間遇到致命錯誤並且空文件路徑不合法

[英]Im getting an fatal error during executenonquery mysql.dll and empty file path is not legal

您好,我試圖將所有數據(包括圖像)保存到我的數據庫中。 我圖像的數據類型是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);
        }

多數民眾贊成在我所做的一切,這也是我的數據庫

數據庫

您將執行命令添加參數。 那永遠都行不通。 目前,您調用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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM