首先创建好数据库
读取数据库那些代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
namespace Site
{
public class SQlHelper
{
string conStr = @"Data Source=.;Initial Catalog=MyKTV;Integrated Security=True";
public Ima Get() {
Ima i = null;
using (SqlConnection conn = new SqlConnection(this.conStr))
{
conn.Open();
string proc = "select * from img";
SqlCommand cmd = new SqlCommand(proc, conn);
i = new Ima() { Img = (byte[])cmd.ExecuteScalar() };
}
return i;
}
public int Add(Ima model)
{
int count = 0;
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@img",model.Img){SqlDbType=SqlDbType.Image},
};
using (SqlConnection conn = new SqlConnection(this.conStr))
{
conn.Open();
SqlTransaction st = conn.BeginTransaction();
try
{
string proc = "rSave";
SqlCommand cmd = new SqlCommand(proc, conn);
cmd.Transaction = st;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(paras);
count = cmd.ExecuteNonQuery();
st.Commit();
}
catch (Exception)
{
st.Rollback();
}
return count;
}
}
}
}
Webservice
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace Site
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public int Add(Ima img) {
return new SQlHelper().Add(img);
}
[WebMethod]
public Ima Get()
{
return new SQlHelper().Get();
}
}
}
Silverlight里面的帮助类,写在XAML页面的那个程序集里面
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
namespace SaveImage
{
public class UploadHelper
{
public delegate void Complete(byte[] Image);
public event Complete UploadComplete;
//读取
public void ConverterImageByte()
{
OpenFileDialog openFileDialog = new OpenFileDialog()
{
Filter = "Images (*.BMP;*.JPG;)|*.BMP;*.JPG;|All Files(*.*)|*.*",
Multiselect = false
};
if (openFileDialog.ShowDialog() == true)
{
FileInfo mapInfo = openFileDialog.File;
string[] mapFullName = mapInfo.Name.Split('.');
if (!(mapFullName[mapFullName.Length - 1].Contains("jpg")))
{
MessageBox.Show("图片不是jpg格式!");
return;
}
FileStream inputStream = mapInfo.OpenRead();
int readSize = 204800;
if (inputStream.Length > readSize)
{
MessageBox.Show("图片大小不能超过200KB!");
return;
}
byte[] imageb = new byte[inputStream.Length];
inputStream.Read(imageb, 0, imageb.Length);
inputStream.Close();
if (this.UploadComplete != null)
{
this.UploadComplete(imageb);
}
}
}
//获取
public ImageBrush ConverterImageBrush(byte[] Image)
{
//MemoryStream inputStream = new MemoryStream(Image, true);
//inputStream.Write(Image, 0, Image.Length);
System.IO.Stream inputStream = new System.IO.MemoryStream(Image);
System.Windows.Media.Imaging.BitmapImage image = new System.Windows.Media.Imaging.BitmapImage();
image.SetSource(inputStream);
return new ImageBrush() { ImageSource = image, Stretch = Stretch.Uniform };
}
}
}
上传的时候先注册事件,在使用,获取的话可以直接诶new 出对象获取
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SaveImage
{
public partial class MainPage : UserControl
{
UploadHelper u = new UploadHelper();
public MainPage()
{
InitializeComponent();
//使用时候必须注册这个事件
u.UploadComplete += new UploadHelper.Complete(u_UploadComplete);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
//点击上传
u.ConverterImageByte();
}
//执行Webservice里面的添加方法
void u_UploadComplete(byte[] Image)
{
ServiceReference1.WebService1SoapClient s = new ServiceReference1.WebService1SoapClient();
s.AddAsync(new ServiceReference1.Ima() { Img = Image });
s.AddCompleted += new EventHandler<ServiceReference1.AddCompletedEventArgs>(s_AddCompleted);
}
//返回成功或者失败
void s_AddCompleted(object sender, ServiceReference1.AddCompletedEventArgs e)
{
MessageBox.Show(e.Result.ToString());
}
//获取数据库里面的图片
private void Button_Click_1(object sender, RoutedEventArgs e)
{
ServiceReference1.WebService1SoapClient s = new ServiceReference1.WebService1SoapClient();
s.GetAsync();
s.GetCompleted += new EventHandler<ServiceReference1.GetCompletedEventArgs>(s_GetCompleted);
}
void s_GetCompleted(object sender, ServiceReference1.GetCompletedEventArgs e)
{
//获取成功,显示
this.LayoutRoot.Background=u.ConverterImageBrush(e.Result.Img);
}
}
}
对于调用Webservice出现跨域问题的 可以在这里解决