永发信息网

C# 如何将 图片直接存入SQL数据库中

答案:2  悬赏:80  手机版
解决时间 2021-12-21 17:49
  • 提问者网友:雪舞兮
  • 2021-12-21 04:52
请问各位 如何图片直接存sql 数据库 ,而不是存 路径 ?谢谢 C#
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2022-01-10 04:43
//把文件转成二进制流出入数据库
        private void button2_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(textBox1.Text, FileMode.Open);
            BinaryReader br = new BinaryReader(fs);
            Byte[] byData = br.ReadBytes((int)fs.Length);
            fs.Close();
            string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
            SqlConnection myconn = new SqlConnection(conn);
            myconn.Open();
            string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)";
            SqlCommand mycomm = new SqlCommand(str, myconn);
            mycomm.Parameters.Add("@file", SqlDbType.Binary, byData.Length);
            mycomm.Parameters["@file"].Value = byData;
            mycomm.ExecuteNonQuery();
            myconn.Close();
        }

        //从数据库中把二进制流读出写入还原成文件
        private void button4_Click(object sender, EventArgs e)
        {
            string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";
            string str = "select pro_file from pro_table where pro_name='测试文件' ";
            SqlConnection myconn = new SqlConnection(conn);
            SqlDataAdapter sda = new SqlDataAdapter(str, conn);
            DataSet myds = new DataSet();
            myconn.Open();
            sda.Fill(myds);
            myconn.Close();
            Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["pro_file"]; 
            BinaryWriter bw = new BinaryWriter(File.Open("D:\\2.rdlc",FileMode.OpenOrCreate));
            bw.Write(Files);
            bw.Close();

        }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯