J'ai deux bases de données chacune dans un projet (projet Winforms et service Web), et j'ai une requête avec Entity Framework pour envoyer des données du projet 1 au projet 2. Mon problème est de savoir comment convertir les images de la première base de données en chaîne pour l'envoyer via la requête?Comment convertir une image de SQL Server en chaîne?
Ceci est mon code de service Web:
// Entity Framework
Person sd = new Person();
// Method to get data from winforms app
public void GetData(string name,string picture)
{
sd.name= name;
sd.picture= ImageToByteArray(picture);
context.AddToPerson(sd);
context.SaveChanges();
}
//Method to save the image into database
private Byte[] ImageToByteArray(string source)
{
FileInfo fInfo = new FileInfo(source);
long sizeByte = fInfo.Length;
FileStream fs = new FileStream(source, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] data = br.ReadBytes((int)sizeByte);
return data;
}
Et voici mon code Winforms:
WebService3SD.Service1SoapClient oService = new WebService3SD.Service1SoapClient();
private void SendData()
{
Driver dr = context.Drivers.FirstOrDefault(d => d.name == "name1");
oService.GetData(dr.name,????);//here i have no idea what i have to do ?!
}
Pour que je besoin d'une méthode pour convertir l'image en une chaîne, alors s'il vous plaît si quelqu'un avoir une idée à ce sujet, je serai très apprécié.
Il est clair 'GetData' attend' picture' être une chaîne * représentant un chemin vers un fichier sur le serveur *. (Il est passé au constructeur de 'FileInfo') Vous ne convertissez donc pas une image en chaîne, mais vous devez plutôt lui passer un chemin vers un fichier qui existe déjà sur le serveur. Si ce n'est pas ce que vous voulez, vous devez implémenter votre serveur afin qu'il ne fonctionne pas en fonction des chemins locaux. –
Il semble être une bonne solution ** Kirk ** mais comment puis-je le code – Mohammadov