PDA

View Full Version : مبتدی: مشکل نمایش ندادن نتیجه در گریدویو



piter11
سه شنبه 19 اسفند 1393, 13:23 عصر
سلام من یه مشکل عچجیبی برخوردم اونم اینکه وقتی ویرایش میکنم تو پایگاه داده sql server ویرایشم اعمال میشه ولی تو گرید ویو جستجو می زنم نشانش نمیده کسی تاحالا همچین مشکلی برخورده؟:متفکر:

Mofid.m
سه شنبه 19 اسفند 1393, 13:38 عصر
خوب اینطوری اگر بخوایم با حدس زدن جواب بدیم میشه گفت که شما بعد از ویرایش باید یه بار دیگه اطلاعات رو به گرید بفرستی تا تغییرات رو نشون بده.
حالا کد ها رو بزار تا ببینیم جریان از چه قراره.

piter11
سه شنبه 19 اسفند 1393, 15:03 عصر
خوب اینطوری اگر بخوایم با حدس زدن جواب بدیم میشه گفت که شما بعد از ویرایش باید یه بار دیگه اطلاعات رو به گرید بفرستی تا تغییرات رو نشون بده.
حالا کد ها رو بزار تا ببینیم جریان از چه قراره.
این کد مربوط به کلیک دکمه جستجو نام پایگاه
a = 1;
SqlCommand com = new SqlCommand("select * from kol where namepaygah='" + comboBox2.Text + "'", con2);
SqlDataAdapter dr = new SqlDataAdapter(com);
DataTable dt = new DataTable();
dr.Fill(dt);


dataGridView1.DataSource = dt;


کد مربوط به ویرایش
int convert = Convert.ToInt16(label25.Text);
SqlCommand com = new SqlCommand("update kol set name=@name,namepedar=@namepedar,shsh=@shsh,tt=@tt, codemeli=@codemeli,shenasebasij=@shenasebasij,noeo zviyat=@noeozviyat,adres=@adres,tell=@tell,mobail= @mobail,noeselah=@noeselah,shomareselah=@shomarese lah,pishshomare=@pishshomare,salesakht=@salesakht, namepaygah=@namepaygah,tahvil=@tahvil,codepaygah=c odepaygah where id='" + convert + "'", con);

com.Parameters.AddWithValue("@name", textBox1.Text);
com.Parameters.AddWithValue("@namepedar", textBox3.Text);
com.Parameters.AddWithValue("@shsh", textBox2.Text);
com.Parameters.AddWithValue("@tt", maskedTextBox1.Text);
com.Parameters.AddWithValue("@codemeli", textBox5.Text);
com.Parameters.AddWithValue("@shenasebasij", textBox4.Text);
com.Parameters.AddWithValue("@noeozviyat", textBox9.Text);
com.Parameters.AddWithValue("@adres", textBox8.Text);
com.Parameters.AddWithValue("@tell", textBox7.Text);
com.Parameters.AddWithValue("@mobail", textBox6.Text);
com.Parameters.AddWithValue("@noeselah", textBox106.Text);
com.Parameters.AddWithValue("@shomareselah", textBox107.Text);
com.Parameters.AddWithValue("@pishshomare", textBox109.Text);
com.Parameters.AddWithValue("@salesakht", textBox108.Text);
//نام پایگاه
com.Parameters.AddWithValue("@namepaygah", comboBox11.Text);
com.Parameters.AddWithValue("@tahvil", maskedTextBox3.Text);
//کد پایگاه
com.Parameters.AddWithValue("@codepaygah", textBox167.Text);
con.Open();
com.ExecuteNonQuery();
MessageBox.Show("با موفقیت ویرایش شد");

if (a == 1)
{
//کلیک کن روی دکمه جستجوی مربوط بخ جستجوی پایگاه
button6.PerformClick();

}

من 7تا دکمه جستجو گذاشتم جالب واسه همشونم کدشون یکیه فقط شرطشون فزق داره وهمشون اعمال میشن بجز دوتاشون اونم یکی نام پایگاه و دومی هم کد پایگاه

Mofid.m
سه شنبه 19 اسفند 1393, 15:13 عصر
مطمئنی که اطلاعاتت ویرایش میشه؟
بیا یه بریک پوینت بزار رو کد مربوط به جستجو ببین جریانش چطوریه؟
منظورم رو کدیه که com رو تعریف کردی.

piter11
یک شنبه 16 فروردین 1394, 20:45 عصر
آقا خواهشا کمک کنید اصلا نمیدونم چشه واقعا ببنید اولش جستجو میکنه فرد رو بر اساس نام پایگاه ولی بعد از ویرایش نام پایگاه جستجو جدید رو بر اساس نام پایگاه جدید میزنی نمیاره چیزی!! در صورتی که در خود دیتابیس sql server تغییرات ویرایش شده اعمال شده! با همه جستجو ها کار میکنه و نشون میده در گرید ویو بجز جستجوی نام پایگاه

systam
یک شنبه 16 فروردین 1394, 23:47 عصر
سلام
دوست عزیز امکانش هست برنامه و بزاری

piter11
دوشنبه 17 فروردین 1394, 00:50 صبح
اینم لینک برنامه, form6.cs رو نگاه کنید همه فیلد ها ویرایش میشن و بعد از جستجو زدن دوباره میان بجز نام پایگاه ممنون

am_al_59
دوشنبه 17 فروردین 1394, 01:12 صبح
با اجازه استاد عزیز systam

شما اون comboBox11 رو اصلاً مقداردهی نکردی
نام پایگاه در کمبو باکسی که جستجو بر اساس اون انجام میشه ComboBox2 آماده هست
اما comboBox11 کجا آیتم هاشو تعریف کردی؟
اینطوری همیشه پس از ویرایش نام پایگاه خالی میشه

piter11
دوشنبه 17 فروردین 1394, 09:53 صبح
قبلا مقدار آیتمارو به هردوتاشون داده بودم الانم باز دادم فرقی نکرد

piter11
دوشنبه 17 فروردین 1394, 10:06 صبح
اطلاعات از گرید ویو بایند میشه به تکس باکس ها و کمبوباکس11 خودش مقدارو میگیره مشکل از جای دیگس
الان شما تو فرم ثبت نام یک نفرو ثبت کنید مثلا در پایگاه شهید حسینی بعد برید تو فرم ویرایش افراد بر اساس نام پایگاه بزنید شهید حسینی میاره رکوردشو رو سطر کلیک میکنی اصلاعات بایند میشه رو تکس باکس ها و کمبوباکس11 حالا نام پایگاهو به شهید الماسی تغییر بدید ویرایش میشه در دیتا بیسم نگاه کنید اعمال میشه تغییرات ولی جستجو نام پایگاه میزنی شهید الماسی هیچ رکوردی تو گرید ویو نمیاره!!!!
اینم لینک جدید

am_al_59
دوشنبه 17 فروردین 1394, 13:30 عصر
توی فرم 6 این متد button6_Click_1 رو اینطوری اصلاح کن

private void button6_Click_1(object sender, EventArgs e)
{
a = 1;
SqlCommand com = new SqlCommand("select * from kol where namepaygah=N'" + comboBox2.Text + "'", con);
SqlDataAdapter dr = new SqlDataAdapter(com);
DataTable dt = new DataTable();
dr.Fill(dt);
dataGridView1.DataSource = dt;
}

همه کدی که نوشتی درسته فقط یک حرف N بعد از مساوی و قبل از ' کم داشتی
برای اینکه این مشکل پیش نیاد هرجا مقایسه رو با رشته انجام میدی این حرفو قبلش بزار
فیلد های دیتابیستو nvarchar تعریف کردی وقتی N نمیزاری یعنی رشته از نوع varchar هست و مطابق کدپیج پیشفرض دیتابیس پردازش میشه وقتی میزاری یعنی nvarchar هست اونو یونیکد پردازش میکنه

piter11
پنج شنبه 20 فروردین 1394, 15:30 عصر
آقا خیلی عجیب الان بر عکس جواب میده نتیجه ویرایش شده هارو میاره! وهرچی ثبت کنی نمیاره, حرف N بزاری جستجو رو میزنی لیست ویرایش شده های نام پایگاه رو نشون میده ولی N نزاری جستجو رو بزنی لیست ثبت نامی ها بدون ویرایش نام پایگاه رو نشون میده !!

am_al_59
پنج شنبه 20 فروردین 1394, 15:34 عصر
شاید مربوط به کد پیج دیتابیست باشه
شاید یکسری رکوردهات و قتی تنظیمات زبان ویندوزت none unicode language روی فارسی بوده زدی بقیشم و قتی همین گزینه روی english بوده
کدی که اصلاح کردی رو دوباره بزار ببینمش

piter11
پنج شنبه 20 فروردین 1394, 15:49 عصر
اینم برنامه خودتون تست کنید وقتی ثبت نام کنید در پایگاه شهید حسینی مثلا اگه N داشته باشه نشونش نمیده ولی ویرایشش کنی به یک پایگاه دیگه مصلا شهید پرند شهید پرند جستجو کنی نشون میده!

am_al_59
پنج شنبه 20 فروردین 1394, 22:38 عصر
کلاً عباراتت رو هر جا یک جور زدی
مثلاً توی همین برنامت با نام شهيد پرندين ثبت نام کن بعد با همین نام جستجو کن نمیاره
چون یک جا با ی زدی یک جا با ي (ی فارسی ی عربی)
اطلاعاتتو بریز تو دیتابیس و برای همه از یک جا بخون تا اینطوری نشه

piter11
جمعه 21 فروردین 1394, 00:20 صبح
حالا من نمیدونم چون آیتمارو کپی کردم تو همه کمبوباکسها , یه شکلن! ولی الان 1 ساعت واسه درج تو پایگاه دادشم کد نوشتم همون شکل واقعا دیگه اعصابم خورد شد برنامه لنگ کار این مسئله کوچیک مونده

piter11
شنبه 22 فروردین 1394, 20:37 عصر
مشکل اینه اولش دکمه جستجوی نام پایگاه رو میزنم مشخصات فرد رو میاره ولی به محض اینکه ویرایش میکنم هر کدوم از فیلد هارو دوباره دکمه جستجوی نام پایگاه رو میزنم دیگه هیچ رکوردی نمیاره!!

اگه نام پایگاه تو کمبو باکس انگیلسی باشه هیچ مشکلی پیش نمیاد ولی اگه فارسی باشه مشکل براش پیش میاد!

piter11
یک شنبه 23 فروردین 1394, 13:27 عصر
مشکلو پیدا کردم collation زبان دبتابیس پایگاه دادم رو arabic بود به Persian_100_CI_AI تغییرش دادم درست شد:لبخند: