اگر امکانش هست سورس قرار بدید
بفرمایید کد کدوم قسمت رو میخواید
احتمالا در قسمت اول شما هدر ها رو براش مشخص کردین اما در قسمتی که دوباره از دیتابیس اومدین اطلاعات فراخونی کنید این تکه کد رو فراموش کردین.پیشنهاد میکنم چون دارین کد رو فراخونی میکنید نحوه فراخونی از دیتا ست انجام بدین و گرید رو با دیتا ست پر کنین
من دوتا عین همین گرید رو دارم با کدهای مشابه به روز میکنم و هیچ مشکلی ندارم نمیدونم چرا این یکی این مدلی میشه
دوستان کسی چیزی به ذهنش میرسه
کد فراخوانی:
Sub seke_()
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
con.Open()
Dim da As New OleDbDataAdapter("select * from t2 order by id asc ", con)
Dim ds As New DataSet
Dim ds_seke As New DataSet
da.Fill(ds, "t2")
DataGridView2.DataSource = ds
DataGridView2.DataMember = "t2"
End Sub
کد به روز رسانی دیتابیس:
Private Sub btn_seke_edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_seke_edit.Click
Dim updateSql As String
If txt_seke.Text = Nothing Then
MessageBox.Show("موردی برای به روز رسانی انتخاب نشده", "اطلاعات سکه", MessageBoxButtons.OK, MessageBoxIcon.Information)
txt_seke.Focus()
Exit Sub
Else
End If
updateSql = "update t2 set seke='" + txt_seke.Text + "',seke_b='" + txt_seke_b.Text + "',seke_s='" + txt_seke_s.Text + "'where val(id)='" + lblseke_id.Text + "'"
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
cmdSelect = New OleDbCommand(updateSql, con)
con.Open()
cmdSelect.ExecuteNonQuery()
con.Close()
MessageBox.Show("بروزرسانی قیمت سکه با موفقیت انجام شد", _
"بروزرسانی قیمت سکه", MessageBoxButtons.OK, MessageBoxIcon.Information)
frm_list.lbl_seke_rep.Visible = True
frm_list.lbl_seke_rep.Text = "لیست قیمتها به روز شد"
txt_seke.Text = Nothing
txt_seke_b.Text = Nothing
txt_seke_s.Text = Nothing
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
con.Open()
Dim da As New OleDbDataAdapter("select id as 'شماره',seke as 'نوع سکه',seke_b as 'قیمت خرید',seke_s as 'قیمت فروش' from t2 where seke = '" + txt_seke.Text + "' and seke_b = '" + txt_seke_b.Text + "' and seke_s = '" + txt_seke_s.Text + "'", con)
Dim ds As New DataSet
da.Fill(ds, "t2")
DataGridView2.DataSource = ds
DataGridView2.DataMember = "t2"
Call seke_()
End Sub
کد فراخوانی کننده که ستون هارو به فارسی تعریف نمیکنه ولی در DGV نام ستون فارسیه ولی در کدهای برزورسانی نام ستون ها رو هم تعریف کردی ولی DGV اسامی فیلدهای جدول رو نشون میده؟
پیشنهاد میکنم برای فراخوانی اطلاعات یک روال تعریف کن که بعد از دریافت اطلاعات، HeaderText مربوط به DGV رو اونجا اصلاح کن و نیازی نیست که یک بار برای فراخوانی اولیه و دوباره برای نمایش داده بعد از بروزرسانی کدهای تکراری بنویسی. اینجوری خیالت راحت که نمایش اطلاعات از یک روال مشخص با تنظیمات مورد نظر اتفاق می یوفته.
اواین برنامه کاربردی من هستش و مطمئناً خالی از ایراد نی ولی مجبور شدم گرید 3 رو حذف کنم چون اشکالش و پیدا نکردم چرا دوتای دیگه بی هیچ مشکلی کار میکنن اما این نه
به هر حال متشکرم
بعد از بارگذاری اطلاعات با دستور DGV.Columns.Item(ColumnIndex).HeaderText = "New Text" عنوان ستونها رو تغییر بده
با درود
لطفا به خط 4 کد اول و خط 24 کد دوم توجه کن ، در اولی شما کل فیلدها را بدون نام مستعار واکشی کردید و در کد دوم با نام مستعار ، همین دلیل تغییر نوع نمایشه
شما همون کاری رو که گفتم انجام بده ببین درست میشه یا خیر. البته سوء تفاهم نشه منظورم این نیست که روش من درسته ولی راحت تره. ابتدا داده ها رو در DGV بارگذاری کن و در ادامه نام ستون رو تغییر بده و از هرجای برنام که خواستی عملیات بارگذاری اطلاعات رو انجام بدی فقط کافیه اون روال رو فراخوانی کنی.
برنامه رو دیدم. داره درست کار میکنه. عنوان ستون ها بهم نخورد!!!
در تب سکه از صفحه اصلی یک سکه اضافه کردم و در فرم گزارش که تب سکه داشت همه چیز درست بود و بعد از اون مجددا همون سکه ای را که اضافه کرده بودم رو مبلغش رو اصلاح کردم و مجددا فرم گزارش رو باز کردم و در تب سکه یک پیغام قرمز رنگ بود که نوشته "اطلاعات بروز رسانی شده" و وقتی روی دکمه "بروز رسانی" کلیک کردم مبلغ جدید رو در لیست دیدم و همه چیز درست بود. چیزی بهم نریخته بود (مطابق نمونه فایلی که ارسال کرده بودید).