我是一个学生。老师让做一个能聊天的软件。
我在做头像那里有个思路。求各位高手帮忙。
头像全部由用户自主上传。上传的头像按照上传顺序自动添加到我的数据库中的头像ID编号内。
所上传的头像自动保存在我服务器hard image文件夹中。
所有使用的用户可以使用以前用户所上传过的头像。借助用户使用。来扩大自己在头像库中的数量。。
求解!谢谢。

解决方案 »

  1.   

    二进制数据
    在sqlserver里的数据类型为image
    在C#中的数据类型为byte[]下面是我自己做过的存取图像二进制数据代码
    private void button1_Click(object sender, EventArgs e)
    {
    openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
    string fullpath = openFileDialog1.FileName;//获取文件对话框中选定的文件名的字符串,包括文件路径 
    FileStream fs = new FileStream(fullpath, FileMode.Open, FileAccess.Read);
    byte[] imagebytes = new byte[fs.Length];//fs.Length文件流的长度,用字节表示 
    BinaryReader br = new BinaryReader(fs);//二进制文件读取器 
    imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//从当前流中将count个字节读入字节数组中 
    SqlConnection conn = new SqlConnection("server=.\\sqlexpress;initial catalog=MyDb;integrated security=true");
    conn.Open();
    SqlCommand cmd = new SqlCommand("insert into MyPhoto values(@id,@Image)", conn);
    cmd.Parameters.Add("@id", SqlDbType.Int, 4);
    cmd.Parameters.Add("@Image", SqlDbType.Image);
    cmd.Parameters["@id"].Value = 1;
    cmd.Parameters["@Image"].Value = imagebytes;
    cmd.ExecuteNonQuery();
    conn.Close();
    MessageBox.Show("图片上传成功");
    }
    }