首先创建好数据库
读取数据库那些代码
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出现跨域问题的 可以在这里解决