如何使用C#中的存储过程将docs-pdf图像文件存储在数据库中



我已经编写了以下代码,使用c#.net将pdf/docs/image文件存储在数据库中和sqlserver2008存储过程,但在转换了字节数组中的文件后,我无法做到这一点。

代码:

 private void bttnSave_Click(object sender, EventArgs e)
        {
            FrmAccept sForm = new FrmAccept();
            sForm.ShowDialog();
            if (FrmAccept.strMsg == "YES")
            {
                sFunctionQuotationSave();
                MessageBox.Show("Data Saved Successfully", "Insert Record", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            { return; }
        }
        public void sFunctionQuotationSave()
        {
            SERIALNUMBER = 1;
            Int32 Id = Convert.ToInt32(sSearch);
            String bytestring = null;
            for (int i = 0; i < dgvQuotationVouchers.Rows.Count; i++)
            {
                string filename = dgvQuotationVouchers.Rows[i].Cells[5].Value.ToString();
                MessageBox.Show("FIlePAth>>" + filename);

                byte[] bytes = File.ReadAllBytes(dgvQuotationVouchers.Rows[i].Cells[5].Value.ToString());
                SqlParameter fileP = new SqlParameter("Upload", SqlDbType.VarBinary);
                fileP.Value = bytes;
                SqlCommand myCommand = new SqlCommand();

                SqlCommand sqlcomm = new SqlCommand();
                sqlcomm.Parameters.Add(new SqlParameter("@Upload", SqlDbType.VarBinary)).Value = bytes;
                dt = sFunctions.ExecuteQuery(Variables.con, "Quotation_Master", "usp_Quotation_Master " + Id + ",'" + dgvQuotationVouchers.Rows[i].Cells[1].Value + "'," + Variables.sTendercode + "," + txtIndentNo.Text + ",'" + dgvQuotationVouchers.Rows[i].Cells[3].Value + "','" + dgvQuotationVouchers.Rows[i].Cells[4].Value + "','" + dgvQuotationVouchers.Rows[i].Cells[1].Value + "','" + dgvQuotationVouchers.Rows[i].Cells[5].Value + "'," + + ",'" + Variables.LocationId + "'," + false + ",'" + Variables.Layer + "'," + rbtnLocal.Checked + "," + rbtnGlobal.Checked + "," + false + "");
                }
            }
             MessageBox.Show("BYTE_DATA>>n"+bytestring);
       }

您的代码中有2个SqlCommand对象。。并且没有设置命令文本属性。。

你应该有这样的东西:

SqlParameter fileP = new SqlParameter("@Upload", SqlDbType.VarBinary);
fileP.Value = bytes; //Here, you're assigning the value to the parameter.
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = someSqlConnection;
myCommand.CommandText = "YOUR UPDATE STATEMENT";
myCommand.Parameters.Add(fileP);
myCommand.ExecuteNonQuery();

最新更新