PDA

View Full Version : سوال: ذخیره تکراری فیلد در بانک اطلاعاتی SQL Server



forodo
یک شنبه 03 خرداد 1394, 21:37 عصر
سلام
من یه کد دارم که یه حلقه داره که توی بانک اطلاعات یه دیتاگریدویو رو ذخیره می کنه.
قبلاً با همین کد بدون هیچ مشکلی اطلاعات ذخیره می شد ولی الان فیلد آخر 2بار در بانک ذخیره می شه.
یعنی اگر دیتاگریدویو 3تا سطر داشته باشه فقط فیلد آخر 2بار ذخیره میشه که یعنی 4سطر در بانک ذخیره می شه.
من همه کد رو می ذارم ولی اگر جایی باید چیزه دیگه ای هم قرار بدم لطفاً بگید.
1 ساعت هی دارم دیباگ می کنم ولی حلقه به تعداد درست اجرا میشه.
اطلاعات دیتاگرید ویو داخل Program.RoneveshtID هستش.
دارم قاطی می کنم.
string lvlv = GetLevelControlDakheli();
UseDate uddd = new UseDate();
SqlTransaction Transaction;
SqlConnection con = new SqlConnection(clsForms.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
con.Open();
Transaction = con.BeginTransaction();
cmd.Transaction = Transaction;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try
{
int i = 0;
foreach (string s in Program.RoneveshtID)
{



cmd.CommandText = @"INSERT INTO tblDaryafti(LetterID,ReceiverUserName,jahat,mohlat ,Dayes,Description,ErjaDate,ErjaTime,Peynevesht, SendErjaa, whichID,LevelL,JustSee

)
VALUES((SELECT LetterID
FROM tblDaryafti " +
"WHERE ID = " + Program.LetterIdDaryafti + @"),@ReceiverUserName,@jahat,@mohlat,
@Dayes,@Description,@ErjaDate,@ErjaTime,@Peynevesh t, @SendErjaa,@whichID,@LevelL,@JustSee)";

cmd.Parameters.Clear();
//cmd.Parameters.AddWithValue("@LetterID", id);
cmd.Parameters.AddWithValue("@ReceiverUserName", s);
cmd.Parameters.AddWithValue("@jahat", Program.Ronevesht_Jahat[i]);
if (gridview.Rows[i].Cells["ResDate"].Value.ToString() != "")
{
int a = Convert.ToInt32(gridview.Rows[i].Cells["ResDate"].Value);
cmd.Parameters.AddWithValue("@mohlat", a);
}
else
{
cmd.Parameters.AddWithValue("@mohlat", "");
}

if (rdbDay.Checked || rdbWeek.Checked)
cmd.Parameters.AddWithValue("@Dayes", "روز");
else if (rdTime.Checked)
cmd.Parameters.AddWithValue("@Dayes", "ساعت");
else if (rdoNone.Checked)
{
cmd.Parameters.AddWithValue("@Dayes", "");
}
cmd.Parameters.AddWithValue("@Description", gridview.Rows[i].Cells["comment"].Value);
cmd.Parameters.AddWithValue("@ErjaDate", udsh.GhamariToShamsi());
cmd.Parameters.AddWithValue("@ErjaTime", udsh.TimeEightCharacter());
cmd.Parameters.AddWithValue("@Peynevesht", gridview.Rows[i].Cells["comment"].Value);
cmd.Parameters.AddWithValue("@SendErjaa", Program.Username);
cmd.Parameters.AddWithValue("@whichID", Program.LetterID.ToString());
if (gridview.Rows[i].Cells["hey"].Value.ToString() == "True")
{
cmd.Parameters.AddWithValue("@LevelL", lvlv + "-" + "(م) " + gridview.Rows[i].Cells["ErjaIn"].Value.ToString() + " " + udsh.GhamariToShamsi().ToString() + " " + udsh.TimeEightCharacter().ToString() + " " + gridview.Rows[i].Cells["comment"].Value.ToString());
}
else
{
cmd.Parameters.AddWithValue("@LevelL", lvlv + "-" + "(ا) " + gridview.Rows[i].Cells["ErjaIn"].Value.ToString() + " " + udsh.GhamariToShamsi().ToString() + " " + udsh.TimeEightCharacter().ToString() + " " + gridview.Rows[i].Cells["comment"].Value.ToString());
}
if (gridview.Rows[i].Cells["hey"].Value.ToString() == "True")
{
cmd.Parameters.AddWithValue("@JustSee", false);
}
else
{
cmd.Parameters.AddWithValue("@JustSee", true);
}
cmd.ExecuteNonQuery();
i++;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
cmd.CommandText = @"UPDATE tblDaryafti
SET IsFonosht = 0 WHERE LetterID = (SELECT LetterID FROM tblDaryafti WHERE ID = " + Program.LetterIdDaryafti + ")";
cmd.ExecuteNonQuery();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (Program.LetterPic.Count > 0)
{

//MessageBox.Show(cmd.ExecuteScalar().ToString());
//return;

int z = 0;
foreach (byte[] s in Program.LetterPic)
{
cmd.CommandText = @"INSERT INTO tblPeyvast(LetterName,LetterPic,LID, FormateFile)
VALUES(@LetterName,@LetterPic,(SELECT LetterID
FROM tblDaryafti " +
"WHERE ID = " + Program.LetterIdDaryafti + @"), @FormateFile)
";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@LetterName", Program.PicName[z]);
cmd.Parameters.AddWithValue("@LetterPic", Program.LetterPic[z]);
cmd.Parameters.AddWithValue("@FormateFile", Program.FormateFilePeyvast[z]);

cmd.ExecuteNonQuery();

z++;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Transaction.Commit();
MessageBox.Show("نامه مورد نظر دوباره به جریان افتاد", "ثبت اطلاعات"
, MessageBoxButtons.OK, MessageBoxIcon.Information);
Program.FormateFilePeyvast.Clear();
Program.PicName.Clear();
Program.LetterPic.Clear();
this.Close();
}
catch (Exception)
{
Transaction.Rollback();
MessageBox.Show("در ارتباط با بانک اطلاعاتی مشکلی پیش آمده است", "خطا درون بانک اطلاعاتی", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
}
finally
{
con.Close();
}