Thursday 13 December 2012

insert and retrive image from database in c#

Insert Image In Databse

public bool SaveImage()
        {
            FileStream fs = new FileStream(curFileName, FileMode.OpenOrCreate, FileAccess.Read);
            byte[] rawData = new byte[fs.Length];
            fs.Read(rawData, 0, System.Convert.ToInt32(fs.Length));
            fs.Close();
            try
            {
                if (curFileName != null)
                {
                    SqlCommand cmd = new SqlCommand("insert into ImageTable ([srno],[image]) values(@srno,@image)", con);
                    cmd.Parameters.Add("@srno", SqlDbType.NVarChar, 50).Value = textBoxSrNo.Text;
                    SqlParameter prm = new SqlParameter("@image", SqlDbType.Image, rawData.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, rawData);
                    cmd.Parameters.Add(prm);
                    con.Open();
                    cmd.ExecuteNonQuery();
                   
                    MessageBox.Show("Success");
                }
                else
                {
                    MessageBox.Show("Empty File Path");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
            finally
            {
                con.Close();
            }
            return true;
        }


retrive image from database

public void DisplayImage()
        {
            try
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("SELECT image FROM ImageTable WHERE srno='" + textBoxSrNo.Text + "'", con);
                SqlDataAdapter sqlDA = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                sqlDA.Fill(ds, "ImageTable");
                int c = ds.Tables["ImageTable"].Rows.Count;
                if (c > 0)
                {
                    Byte[] byteBLOBData = new Byte[0];
                    byteBLOBData = (Byte[])(ds.Tables["ImageTable"].Rows[c - 1]["image"]);
                    MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
                    Image img;
                    //pictureBox1.Image = img.GetThumbnailImage(340, 165, null, new IntPtr());
                   
                   img = pictureBox1.Image = Image.FromStream(stmBLOBData);
                   pictureBox1.Image = img.GetThumbnailImage(200, 200, null, new IntPtr());
                    //pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
                    pictureBox1.Show();

                    //Byte[] byteBLOBData = new Byte[0];
                    //byteBLOBData = (Byte[])(ds.Tables["ImageTable"].Rows[c - 1]["image"]);
                    //MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
                    //pictureBox1.Image = Image.FromStream(stmBLOBData);
                    //pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
                    //pictureBox1.Show();
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            con.Close();

        }





Tuesday 11 December 2012

conditional execution of two classes in c#

Below code is the best solution when, developer wish to execute 2nd class, only if 1st class  get executed successfully

Class 1st


public bool SaveOtherInfo()
        {
            try
            {
                con.Open();
                if (textBoxSrNo.Text == "" || textBoxCARD2.Text == "" || textBoxFirstName.Text == "")
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('One or more field are empty..');", true);
                    return false;
                }
                if (FileUpload1.FileName == "")
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('Select Image');", true);
                    return false;
                }
                else
                {
                    param = " '" + this.textBoxSrNo.Text + "' ," +   
                            " '" + this.comboBoxRelocate.Text + " '";


                    strSQL = @"INSERT  INTO student VALUES (" + param + ")";

                    cmd.Connection = con;
                    cmd.CommandText = strSQL;
                    cmd.CommandType = CommandType.Text;

                    int i = cmd.ExecuteNonQuery();


                    if (i > 0)
                    {
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('Information submitted Successfully');", true);
                        return true;
                    }
                }
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('" + ex.Message + "');", true);
                return false;
            }
            finally
            {
                con.Close();
            }
            return true;
        }


Class 2nd

private bool SaveImage()
        {
            try
            {
                //Condition to check if the file uploaded or not
                if (FileUpload1.HasFile)
                {
                    //getting length of uploaded file
                    int length = FileUpload1.PostedFile.ContentLength;

                    //create a byte array to store the binary image data
                    byte[] imgbyte = new byte[length];

                    //store the currently selected file in memeory
                    HttpPostedFile img = FileUpload1.PostedFile;

                    //set the binary data
                    img.InputStream.Read(imgbyte, 0, length);
                    con.Open();

                    SqlCommand cmd = new SqlCommand("INSERT INTO ImageTable VALUES(@srno,@image)", con);
                    cmd.Parameters.Add("@srno", SqlDbType.NVarChar, 50).Value = textBoxSrNo.Text;
                    cmd.Parameters.Add("@image", SqlDbType.Image).Value = imgbyte;

                    int count = cmd.ExecuteNonQuery();
                    con.Close();
                    if (count > 0)
                    {
                        ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('Image Inserted Successfully');", true);

                    }
                }
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('" + ex.Message + "');", true);
                return false;
            }
            finally
            {

            }
            return true;

        }

Button for checking classes execution and save data of both the classes if both classes executes successfully,

In short, If class"SaveOtherInfo" gets executed successfully then only class"SaveImage" get executed otherwise not..


protected void ButtonSave_Click(object sender, EventArgs e)
        {
            bool flag;
            flag = SaveOtherInfo();

            if (flag == true)
            {
                SaveImage();
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('Can not Insert Data');", true);
            }
        }


display two columns combobox c#

display two columns combobox c#


con.Open();
OleDbCommand cmd = new OleDbCommand("Select emaployeeFirstName + ' ' + employeeLastName as name from Employee", con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
comboBoxLabour.DisplayMember = "name";
comboBoxLabour.ValueMember = "name";
comboBoxLabour.DataSource = dt;
con.Close();

Wednesday 5 December 2012

Passing label value to crystal report text object in c# windows application



 private void buttonFinish_Click(object sender, EventArgs e)
        {
            string FromMonth = comboBoxFromMonth.Text, FromYear= comboBoxFromYear.Text, ToMonth= comboBoxToMonth.Text, ToYear=comboBoxToYear.Text;
            Form6 frm = new Form6(FromMonth,FromYear,ToMonth,ToYear);
            frm.MdiParent = this.MdiParent;
            frm.Dock = DockStyle.Fill;
            frm.Show();
        }














Form 6: code behind

public Form6(string FromMonth, string FromYear, string ToMonth, string ToYear)
        {
            InitializeComponent();
            label1.Text = FromMonth;
            label2.Text = FromYear;
            label3.Text = ToMonth;
            label4.Text = ToYear;
        }

 private void Form6_Load(object sender, EventArgs e)
        {
            crystalReportViewer1.DisplayGroupTree = false;
        }

private void crystalReportViewer1_Load(object sender, EventArgs e)
        {
            ParameterFieldDefinitions crParameterFieldDefinitions;
            ParameterFieldDefinition crParameterFieldDefinition;
            ParameterValues crParameterValues = new ParameterValues();
            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            CrystalReport6 myreport;
            string selectSQL = null;
            selectSQL = "Select * from salaryslip where [year] between '" + label2.Text + "'AND '" + label4.Text + "' AND [month] between '" + label1.Text + "'AND'" + label3.Text + "'";
            con.Open();
            DataSet6 ds = new DataSet6();
            OleDbCommand cmd = new OleDbCommand(selectSQL, con);
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            da.Fill(ds, "salaryslip");
            myreport = new CrystalReport6();
            myreport.SetDataSource(ds);
            crystalReportViewer1.ReportSource = myreport;

            crParameterDiscreteValue.Value = label1.Text;
            crParameterFieldDefinitions = myreport.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["FromMonth"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crParameterDiscreteValue.Value = label2.Text;
            crParameterFieldDefinitions = myreport.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["FromYear"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crParameterDiscreteValue.Value = label3.Text;
            crParameterFieldDefinitions = myreport.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["ToMonth"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crParameterDiscreteValue.Value = label4.Text;
            crParameterFieldDefinitions = myreport.DataDefinition.ParameterFields;
            crParameterFieldDefinition = crParameterFieldDefinitions["ToYear"];
            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();
            crParameterValues.Add(crParameterDiscreteValue);
            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            da.Dispose();
            con.Close();
        }