PDA

View Full Version : Database



ara12345
سه شنبه 06 شهریور 1386, 10:31 صبح
سلام
در برنامه من باید دو بار کلیدی Save را بزنم تا داده هایم در گرید نمایش داده بشه
نمی دونم چرا؟ در همون لجظه دادهام از DB فراخوانی نمی شود لطفا" بگید چرا؟

رها
سه شنبه 06 شهریور 1386, 10:39 صبح
لطف کنید کدتون رو بگذارید تا بررسی بشه.

ara12345
سه شنبه 06 شهریور 1386, 10:47 صبح
SqlCommand scmdCloths = newSqlCommand( );
//SqlCommand scmdClothsUpdate = new SqlCommand();

// scmdClothsUpdate.CommandText =

scmdCloths.CommandText = " INSERT INTO Clothss " + "(Name , Family , DAte,weight,Number)" + " VALUES (@StrName ,@StrFamily , @StrDate , @StrWeight ,@StrNumber)";
scmdCloths.Connection= scnn;
scmdCloths.Parameters.AddWithValue("@StrName", TxtName.Text);
scmdCloths.Parameters.AddWithValue("@StrFamily",TxtFamily.Text);
scmdCloths.Parameters.AddWithValue("@StrDate",TxtDate.Text);
scmdCloths.Parameters.AddWithValue("@StrWeight",TxtWeight.Text);
scmdCloths.Parameters.AddWithValue("@StrNumber",TxtNumber.Text);
this.TxtName.Text.DataBindings.Add("@StrName", dscloths.DefaultView, "Name");
this.TxtFamily.Text.DataBindings.Add("@StrFamily", dscloths.DefaultView, "Family");
//this.textBox3.DataBindings.Add("Text", dt.DefaultView, "contactName");

this.sdacloths = newSqlDataAdapter("select Name, Family, Date, Weight, Number, [add] from Clothss", scnn);
this.dscloths = newDataSet();
sdacloths.Fill(dscloths, "Clothss");
dataGridView1.DataSource = dscloths.Tables[0].DefaultView;
scnn.Open();
scmdCloths.ExecuteNonQuery();
scnn.Close();

ara12345
سه شنبه 06 شهریور 1386, 12:02 عصر
لطفا" یکی بمن کمک کنه آیا من باید از DataGridView1.DAtabindings(); استفاده کنم؟

MH2538
پنج شنبه 08 شهریور 1386, 08:42 صبح
سلام
تنها چیزی که به نظر میاد با تغییرش میشه مشکلت رو حل کرد تغییر دادن


sdacloths.Fill(dscloths, "Clothss");

به


sdacloths.Fill(dscloths);

است.
درمورد سئوال آخرت هم باید بگم من هم همیشه از همین روشی که شما استفاده کردید استفاده می کنم و مشکلی هم نداشته‌ام بنابراین فکر نمی کنم مشکل شما در اون قسمت باشه.

jaza_sa
پنج شنبه 08 شهریور 1386, 15:21 عصر
اگر از DataTable استفاده کنی چی!!!


DataTable dt=new DataTabel;
sdacloths.Fill(dt);

و بعد از بستن Connection

dataGrideView1.DataSourse = dt

ara12345
شنبه 10 شهریور 1386, 11:06 صبح
می دونید چیه من برای اینکه اول که فرمم نمایش داده بشه گریدم پر باشه موقعی مه فرم لود می شه این کد ها را نوشتم ولی نمی دونم کجاش و باید درست کنم؟اینجا من دوبار از Dataset استفاده کردم یکبار توی رویداد کلید یک بار وقتی فرمم لود می شه ای اشتباهه؟!!!
لطفا" یکی بمن بگه؟


this.scnn = newSqlConnection(strConn);
this.sdacloths = newSqlDataAdapter("Select Name, Family, Date, Weight, Number, [add] from Clothss", scnn);
this.dscloths = newDataSet();
sdacloths.Fill(dscloths);
// dataGridView1.DataSource = dscloths;

dataGridView1.DataSource = dscloths.Tables[0].DefaultView;
//dataGridView1.DataMember = "Clothss";

once4ever
شنبه 10 شهریور 1386, 12:01 عصر
روشی که استفاده میکنید بهینه نیست اما اینکارو انجام بده
تو رویداد لود فرمت دستورات fill بنویس و تو رویداد کلیک اول دستورات insert بنویس و بعد دستور fill
مشکلت اینه که این کدی که تو پست دومت نوشتی قبل از اینکه اطلاعات جدید به بانک بفرستی با این خط:

scmdCloths.ExecuteNonQuery();
اومدی دیتاست پر کردی.
پس این خط رو قبل از fill بذار

ara12345
شنبه 10 شهریور 1386, 12:46 عصر
می شه بگید بهینه اش چیه؟ اینکاری که شما گفتیدو نمی شه کرد چون چیو Execute کنه وقتی هنوز Fill نشده (پست دوم را در لود شدن فرمم نوشتم و اولی را در رویداد کلیک)

ara12345
شنبه 10 شهریور 1386, 13:50 عصر
اگه میشه لطفا" یکی جوابم و بده