我在c#windows应用程序中尝试下面的代码,可以从SQL Server数据库表中检索单个图像。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace ManagementSystem
{
public partial class frmSearchResult : Form
{
public frmSearchResult()
{
InitializeComponent();
}
SqlConnection con;
SqlCommand cmd;
private void cmdSearch_Click(object sender, EventArgs e)
{
con = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=managementsystem;Integrated Security=True");
con.Open();
cmd = new SqlCommand("Select M_Photo, S_Photo From Members where M_Number=15", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
MemoryStream ms = new MemoryStream((byte[])ds.Tables[0].Rows[0]["M_Photo"]);
pic_M.Image = new Bitmap(ms);
}
}
}
}
但我需要从数据库中检索多个图像。当我在最后添加到代码下面时,我收到一个错误:
参数无效。
附加代码是
MemoryStream ms1 = new MemoryStream((byte[])ds.Tables[0].Rows[0]["S_Photo"]);
pic_S.Image = new Bitmap(ms1);
这有什么问题?请帮忙。
谢谢!
答案 0 :(得分:0)
主要问题在于以正确的方式保存图像。使用以下代码为每个图像保存图像在数据库图像字段中,并使用上面提到的代码来检索图像。
@Override
public void pointTo(Location location) {
if(mGoogleMap!=null){
Marker currentLocationMarker = mGoogleMap
.addMarker(new MarkerOptions()
.position(new
LatLng(location.getLatitude(),location.getLongitude()))
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));
}
}
else{
latitude=location.latitude;//or whatever property is called
longitude=location.longitude;;//or whatever property is called
}
}
谢谢!