neda_dela
یک شنبه 08 آذر 1388, 23:17 عصر
سلام دوستان
من دو تا فرم دارم که توی هر کدوم هم گرید دارم. گرید فرم 1 به تیبل 1 و گرید فرم 2 به تیبل 2 متصله. یعنی هر کدوم به دو تا تیبل مجزا متصل هستن . منتها این دو تا تیبل یه تعداد فیلد مشترک هم دارند. این فیلدها شامل: کد و نام و نام خانوادگی و آدرس و تلفن و موبایل و همچنین عکس هستن.
من اول از گرید فرم 1 یه رکورد رو انتخاب می کنم و از طریق منوی بالای صفحه به فرم 2 میرم . علت انتخاب رکورد از گرید فرم 1 هم که معلومه دیگه برای اینکه فیلد های مشترک بین این دو تا تیبل به فرم 2 پاس داده بشه.
مقادیر این فیلدها با موفقیت به فرم 2 پاس داده میشه و هر کدوم توی تکست باکس مربوطه قرار می گیره و عکس هم توی پیکچر باکس فرم 2 نشون داده میشه. حالا من مقدار بقیه فیلدها رو تو فرم 2 وارد می کنم و دکمه ثبت رو که می زنم یه خطا میده اما وقتی اوکی می کنم پیغام میده که رکورد با موفقیت ثبت شد و ثبت هم میشه البته بدون عکس. عکس توی بانک ثبت نمیشه.
این کد زمانی هست که از منو به فرم 2 میرم و فیلدهای مشترک پاس داده میشه:
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
sabtterm st = new sabtterm();
st.textBox1.Text = dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
st.textBox2.Text = dataGridView1.SelectedRows[0].Cells["firstname"].Value.ToString();
st.textBox3.Text = dataGridView1.SelectedRows[0].Cells["lastname"].Value.ToString();
st.textBox6.Text = dataGridView1.SelectedRows[0].Cells["address"].Value.ToString();
st.textBox12.Text = dataGridView1.SelectedRows[0].Cells["tel"].Value.ToString();
st.textBox13.Text = dataGridView1.SelectedRows[0].Cells["mobile"].Value.ToString();
st.pictureBox1.Image = Image.FromStream(new MemoryStream((byte[])(dataGridView1.SelectedRows[0].Cells["pic"].Value)));
st.ShowDialog();
}
else
MessageBox.Show("رکورد مربوطه را انتخاب نمایید");
}
و این هم کد دکمه ثبت اطلاعات در فرم 2:
private void button1_Click(object sender, EventArgs e)
{
try
{
this.st_sabtTableAdapter.Fill(this.quranDataSet._s t_sabt);
MemoryStream ms = new MemoryStream();
try
{
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
}
catch (Exception exc)
{
MessageBox.Show("¢يï© êëں« ©ں ں뢦ں کëï§");
return;
}
byte[] arrayImage = ms.GetBuffer();
ms.Close();
myConnection.Open();
da.InsertCommand = new SqlCommand();
string query = "insert into [st-sabt](id,firstname,lastname,birthday,pic,tel,mobile,add ress)values(@id,@fname,@lname,@bdate,@i,@tel,@mob, @add)";
SqlCommand cmd = new SqlCommand(query, myConnection);
cmd.Parameters.Add("@id", SqlDbType.BigInt, 8).Value = (textBox1.Text);
cmd.Parameters.Add("@fname", SqlDbType.NVarChar, 50).Value = (textBox2.Text);
cmd.Parameters.Add("@lname", SqlDbType.NVarChar, 50).Value = (textBox3.Text);
cmd.Parameters.Add("@bdate", SqlDbType.Text, 16).Value = (maskedTextBox2.Text);
cmd.Parameters.Add("@i", SqlDbType.Image, 16).Value = arrayImage;
cmd.Parameters.Add("@tel", SqlDbType.NVarChar, 50).Value = (textBox12.Text);
cmd.Parameters.Add("@mob", SqlDbType.NVarChar, 50).Value = (textBox13.Text);
cmd.Parameters.Add("@add", SqlDbType.NVarChar, 50).Value = (textBox6.Text);
cmd.ExecuteNonQuery();
myConnection.Close();
sabtterm_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
البته این کد دوم بزرگتره ولی من برای اختصار کوتاهش کردم.
برای دوستانی هم که می خان برنامه رو ببینن لینکش رو می ذارم:
این لینک بانکم:
http://persiandrive.com/863111
این هم برنامه:
http://persiandrive.com/674701
خواهشا بچه ها پای آبرو در میونه
من دو تا فرم دارم که توی هر کدوم هم گرید دارم. گرید فرم 1 به تیبل 1 و گرید فرم 2 به تیبل 2 متصله. یعنی هر کدوم به دو تا تیبل مجزا متصل هستن . منتها این دو تا تیبل یه تعداد فیلد مشترک هم دارند. این فیلدها شامل: کد و نام و نام خانوادگی و آدرس و تلفن و موبایل و همچنین عکس هستن.
من اول از گرید فرم 1 یه رکورد رو انتخاب می کنم و از طریق منوی بالای صفحه به فرم 2 میرم . علت انتخاب رکورد از گرید فرم 1 هم که معلومه دیگه برای اینکه فیلد های مشترک بین این دو تا تیبل به فرم 2 پاس داده بشه.
مقادیر این فیلدها با موفقیت به فرم 2 پاس داده میشه و هر کدوم توی تکست باکس مربوطه قرار می گیره و عکس هم توی پیکچر باکس فرم 2 نشون داده میشه. حالا من مقدار بقیه فیلدها رو تو فرم 2 وارد می کنم و دکمه ثبت رو که می زنم یه خطا میده اما وقتی اوکی می کنم پیغام میده که رکورد با موفقیت ثبت شد و ثبت هم میشه البته بدون عکس. عکس توی بانک ثبت نمیشه.
این کد زمانی هست که از منو به فرم 2 میرم و فیلدهای مشترک پاس داده میشه:
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
sabtterm st = new sabtterm();
st.textBox1.Text = dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
st.textBox2.Text = dataGridView1.SelectedRows[0].Cells["firstname"].Value.ToString();
st.textBox3.Text = dataGridView1.SelectedRows[0].Cells["lastname"].Value.ToString();
st.textBox6.Text = dataGridView1.SelectedRows[0].Cells["address"].Value.ToString();
st.textBox12.Text = dataGridView1.SelectedRows[0].Cells["tel"].Value.ToString();
st.textBox13.Text = dataGridView1.SelectedRows[0].Cells["mobile"].Value.ToString();
st.pictureBox1.Image = Image.FromStream(new MemoryStream((byte[])(dataGridView1.SelectedRows[0].Cells["pic"].Value)));
st.ShowDialog();
}
else
MessageBox.Show("رکورد مربوطه را انتخاب نمایید");
}
و این هم کد دکمه ثبت اطلاعات در فرم 2:
private void button1_Click(object sender, EventArgs e)
{
try
{
this.st_sabtTableAdapter.Fill(this.quranDataSet._s t_sabt);
MemoryStream ms = new MemoryStream();
try
{
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
}
catch (Exception exc)
{
MessageBox.Show("¢يï© êëں« ©ں ں뢦ں کëï§");
return;
}
byte[] arrayImage = ms.GetBuffer();
ms.Close();
myConnection.Open();
da.InsertCommand = new SqlCommand();
string query = "insert into [st-sabt](id,firstname,lastname,birthday,pic,tel,mobile,add ress)values(@id,@fname,@lname,@bdate,@i,@tel,@mob, @add)";
SqlCommand cmd = new SqlCommand(query, myConnection);
cmd.Parameters.Add("@id", SqlDbType.BigInt, 8).Value = (textBox1.Text);
cmd.Parameters.Add("@fname", SqlDbType.NVarChar, 50).Value = (textBox2.Text);
cmd.Parameters.Add("@lname", SqlDbType.NVarChar, 50).Value = (textBox3.Text);
cmd.Parameters.Add("@bdate", SqlDbType.Text, 16).Value = (maskedTextBox2.Text);
cmd.Parameters.Add("@i", SqlDbType.Image, 16).Value = arrayImage;
cmd.Parameters.Add("@tel", SqlDbType.NVarChar, 50).Value = (textBox12.Text);
cmd.Parameters.Add("@mob", SqlDbType.NVarChar, 50).Value = (textBox13.Text);
cmd.Parameters.Add("@add", SqlDbType.NVarChar, 50).Value = (textBox6.Text);
cmd.ExecuteNonQuery();
myConnection.Close();
sabtterm_Load(sender, e);
MessageBox.Show("اطلاعات با موفقیت وارد شد");
البته این کد دوم بزرگتره ولی من برای اختصار کوتاهش کردم.
برای دوستانی هم که می خان برنامه رو ببینن لینکش رو می ذارم:
این لینک بانکم:
http://persiandrive.com/863111
این هم برنامه:
http://persiandrive.com/674701
خواهشا بچه ها پای آبرو در میونه