Ajout d'une image dans la base de données SQL à l'aide de Visual C#
Je suis en train de travailler sur un programme visual C# pour le traitement de l'image.Je suis en train d'ajouter l'image à la base de données sql à l'aide de Visual C# (Windows forms) et ADO.NET.
J'ai converti l'image de la forme binaire avec filestream méthode, mais l'image octets ne sont pas sauvés dans la base de données. À la base de données de la colonne image, il est dit < données Binaires > et aucune donnée n'est sauvés!
J'ai essayé de nombreuses méthodes pour l'insertion( avec et sans procédures stockées, etc...) mais toujours la même chose à la base de données.
private void button6_Click(object sender, EventArgs e)
{
try
{
byte[] image = null;
pictureBox2.ImageLocation = textBox1.Text;
string filepath = textBox1.Text;
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
image = br.ReadBytes((int)fs.Length);
string sql = " INSERT INTO ImageTable(Image) VALUES(@Imgg)";
if (con.State != ConnectionState.Open)
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add(new SqlParameter("@Imgg", image));
int x= cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(x.ToString() + "Image saved");
}
}
Je ne suis pas d'erreur dans le code. l'image obtenu converti et l'entrée est faite dans la base de données, mais dit < Données Binaires > à la base de données sql.
Il n'est pas clair de quelle manière cela ne fonctionne pas. Si il y a des données binaires stockées dans la base de données, n'est-ce pas un succès? Ou voulez-vous dire que c'est le stockage de l' chaîne "<données Binaires>"? Montrer le code que vous utilisez pour stocker les données, et d'indiquer où vous remarquez un problème.
Afficher le code. Si vous nous montrer à la fois comment vous convertissez l'image en octets, et la manière dont vous essayez de l'insérer, il y a une plus grande chance que nous pouvons trouver le problème.
Poste ton code, on pouvait le deviner toute la journée pour expliquer pourquoi il ne fonctionne pas (mais nous ne le ferons pas). Aussi, avez-vous besoin pour enregistrer l'image à la base de données? Ou vous pouvez simplement écrire l'emplacement de l'image à la place?
oui..que la chaîne littérale est là. Son vide quand j'ai essayé de la convertir à l'image à l'aide de memorystream.
OriginalL'auteur Jeena | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
Le fichier sélectionné flux doit être converti en tableau d'octets.
Maintenant cela fonctionne bien. La base de données montre encore < données Binaires > mais elle pourrait être reconverties à l'image à l'aide de memorystream méthode.
Merci à tous...
OriginalL'auteur Jeena
Essayer avec quelque chose comme ceci:
OriginalL'auteur majimenezp
En supposant que vous utilisez
VARBINARY
pour stocker votre image (ce qui devrait être le), vous pouvez avoir besoin pour rendre votre SqlParameter plus fortement typé:Ainsi, au lieu de
Vous utilisez:
Vous pouvez également utiliser Système.IO.Fichier.ReadAllBytes de raccourcir votre code tournant d'un chemin d'accès du fichier dans un tableau d'octets.
OriginalL'auteur GarethD
Exécuter cette procédure stockée:
Table Emp:
OriginalL'auteur