zu speichern Ich speicherte Bild in meiner SQL Server-Datenbank in einer Spalte des Datentyps (Binary) und es ist Erfolgreich gespeichert. Jetzt muß ich es in meiner Datenliste abrufen, aber ich habe diesen Fehler:Kann Objekt des Typs 'System.Int32' nicht umwandeln, um 'System.Byte []' in get Image-Daten von SQL Server
Kann nicht das Objekt des Typs ‚System.Int32‘ werfen ‚System.Byte‘
Typ I zu erkennen, werde jemand meinen Code überprüfen, ob, wo ich
verwechseln habenprivate void button1_Click(object sender, EventArgs e)
{
try
{
string sql = "SELECT Name,[Last Name],[Father Name],[Passport Number],Sh_ID ,I_ID,Email,[Phone Number], [Address], [Attorney In Iran], [Application Text] ,[Application Title Code] ,[Total Payment] ,[Total Paid],[Iran Case Status],[USA Case Status],Balance,[Customer picture] from permanentCustomer where (I_ID='"+textBoxIDN.Text+"' and [Last Name]='"+textBoxLN.Text+"') or (Sh_ID='"+textBoxBCN.Text+"' and [Last Name]='"+textBoxLN.Text+"') or Sh_ID='"+textBoxBCN.Text+"' or I_ID='"+textBoxIDN.Text+"' ";
if (conn.State != ConnectionState.Open)
conn.Open();
// MessageBox.Show("1");
command = new SqlCommand(sql, conn);
// MessageBox.Show("2");
SqlDataReader reader = command.ExecuteReader();
//MessageBox.Show("3");
reader.Read();
// MessageBox.Show("4");
if (reader.HasRows)
{
textBoxFN.Text = reader[0].ToString();
textBoxLN.Text = reader[1].ToString();
textBoxFatherN.Text = reader[2].ToString();
textBoxPN.Text = reader[3].ToString();
textBoxBCN.Text = reader[4].ToString();
textBoxIDN.Text = reader[5].ToString();
textBoxEmail.Text = reader[6].ToString();
textBoxPhoneN.Text = reader[7].ToString();
textBoxAddress.Text = reader[8].ToString();
textBoxAI.Text = reader[9].ToString();
richTextBoxAT.Text = reader[10].ToString();
textBoxTPayments.Text = reader[11].ToString();
textBoxTPaid.Text = reader[12].ToString();
textBoxICS.Text = reader[13].ToString();
textBoxUCS.Text = reader[14].ToString();
textBoxbalance.Text = reader[15].ToString();
byte[] img = (byte[])(reader[16]);
if (img == null) { picCustomer.Image = null; }
else { MemoryStream ms = new MemoryStream(img); }
}
else { MessageBox.Show("This Record is not exist!"); }
conn.Close();
}
catch(Exception ex)
{
conn.Close();
MessageBox.Show(ex.Message);
}
}
Ich denke, Sie sollten [gesetzt visuelle Studio, um Ausnahmen zu unterbrechen.] (https://msdn.microsoft.com/en-us/library/d14azbfh (v = vs.110) .aspx) – radarbob
[SQL-Injection-Warnung] (http://msdn.microsoft. com/de-us/library/ms161953% 28v = sql.105% 29.aspx) - Sie sollten ** nicht ** Ihre SQL-Anweisungen miteinander verketten - verwenden Sie stattdessen ** parametrisierte Abfragen **, um die SQL-Injektion –
'image' zu vermeiden Der Datentyp ist ** veraltet ** und wird in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieses Datentyps in neuen Entwicklungsarbeiten, und planen Sie, Anwendungen zu ändern, die sie derzeit verwenden. Verwenden Sie stattdessen 'varbinary (max)'. [Siehe Details hier] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) –