【发布时间】:2013-04-04 20:24:08
【问题描述】:
我在一个项目(Winforms 和 Web 服务项目)中有两个数据库,我有一个使用 Entity Framework 的查询,将数据从项目 1 发送到项目 2。我的问题是如何转换第一个数据库中的图像要字符串通过查询发送它?
这是我的网络服务代码:
// 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;
}
这是我的 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 ?!
}
为此,我需要一种将图像转换为字符串的方法,所以请如果有人有任何 对此我将不胜感激。
【问题讨论】:
-
很明显
GetData期望picture是一个字符串表示服务器上文件的路径。 (它被传递给FileInfo的构造函数)所以你不是“将图像转换为字符串”,而是需要将它传递给服务器上已经存在的文件的路径。如果这不是你想要的,你应该实现你的服务器,这样它就不能基于本地路径工作。 -
这似乎是一个很好的解决方案 Kirk 但我该如何编写代码
标签: c# sql-server winforms entity-framework