假设表如下,现需要将照片d:\1.jpg添加到库中,请问该如何做?
CREATE TABLE test(username varchar(20),password varchar(20), img blob)最好给出详细的代码。
谢谢大家!

解决方案 »

  1.   

    SQLite没用过,需要使用参数化方式:给你一个例子:        FileStream fs = new FileStream(@"c:\test.jpg", FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);        img = Image.FromFile(@"c:\test.jpg");
            MemoryStream ms = new MemoryStream();
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);        byte[] myData = ms.ToArray();        SqlConnection cn = new SqlConnection("Data Source=(local);Initial Catalog=utscadadb;Integrated Security=SSPI; User Id=sa;Password=ut2001;");
            SqlCommand cmd = new SqlCommand("Update Table1 Set data = (@data) where id =3", cn);
            cmd.Parameters.Add("@file ", SqlDbType.VarChar).Value = "d:\\test.jpg";
            cmd.Parameters.Add("@data ", SqlDbType.Image).Value = myData;        cn.Open();
            cmd.ExecuteNonQuery();
            cn.Close();
      

  2.   

    问题已解决,多谢!// 连接字符串 data source=d:\test.db3;password=1234
                    SQLiteConnectionStringBuilder connStr = new SQLiteConnectionStringBuilder();
                    connStr.DataSource = @"d:\test.db3";
                    connStr.Password = "1234";
                    conn = new SQLiteConnection(connStr.ToString());
                    conn.Open();                // 插入数据
                    string SQL = "INSERT INTO test(k) VALUES(:k)";
                    SQLiteCommand cmd = conn.CreateCommand();
                    cmd.CommandText = SQL;                // 取图标,准备插入到数据库BLOB字段
                    FileStream picStream = File.OpenRead(@"d:\1.bmp");
                    byte[] bArray = new byte[picStream.Length];
                    picStream.Read(bArray, 0, bArray.Length);
                    picStream.Close();                cmd.Parameters.Add("k", DbType.Binary).Value = bArray;  // BLOB
                    cmd.ExecuteNonQuery();                //取出数据  
                    cmd.CommandText = "SELECT k FROM test";
                    System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        MemoryStream streamImage = new MemoryStream(reader["k"] as byte[]);
                        pictureBox1.Image = Image.FromStream(streamImage);
                        streamImage.Close(); // 关闭流
                    }
                    reader.close();                conn.close();