PDA

View Full Version : سوال: مکشل در اجرای کد تاریخ تولد



piter11
یک شنبه 23 شهریور 1393, 23:12 عصر
سلام این کد مربوط میشه به تاریخ تولد من وقتی یه فرم ایجاد میکنم گرید ویو هم بهش اضافه میکنم این کد زیرو بهش اضافه میکنم در رویداد لودش چون امروز تولد اون شخص فقط فرم نشون میده با هیدرهای سطر ها ولی محتویاتشو نشون نمیده کسی میدونه مشکلش چیه هرچی هست تو اتصال دیتا سورس به گرید ویو با سپاس

con = New SqlConnection(My.Settings.Conn)
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip WHERE (tarikh=@tarikh)"


Dim clsdate As New clsdatetime
Dim todaydate As Date = Now
Dim datetoday As Date = clsdate.MiladiToShamsi(todaydate)
Dim dayserial As String = datetoday.Day.ToString
If datetoday.Day.ToString < 10 Then
dayserial = "0" + datetoday.Day.ToString
End If
Dim monthserial As String = datetoday.Month.ToString
If todaydate.Month.ToString < 10 Then
monthserial = "0" + todaydate.Month.ToString
End If
Dim dateserial As String = datetoday.Year.ToString + "/" + monthserial + "/" + dayserial.ToString
Dim dt = New DataTable
cmd.Parameters.Add("@tarikh", SqlDbType.NVarChar, 50).Value = dateserial
da = New SqlDataAdapter(cmd)
dt = New DataTable


da.Fill(dt)

DataGridView1.DataSource = dt

biotechsoft
دوشنبه 24 شهریور 1393, 07:21 صبح
con = New SqlConnection(My.Settings.Conn)

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip WHERE (tarikh=@tarikh)"


Dim clsdate As New clsdatetime
Dim todaydate As Date = Now
Dim datetoday As Date = clsdate.MiladiToShamsi(todaydate)
Dim dayserial As String = datetoday.Day.ToString
If datetoday.Day.ToString < 10 Then
dayserial = "0" + datetoday.Day.ToString
End If
Dim monthserial As String = datetoday.Month.ToString
If todaydate.Month.ToString < 10 Then
monthserial = "0" + todaydate.Month.ToString
End If
Dim dateserial As String = datetoday.Year.ToString + "/" + monthserial + "/" + dayserial.ToString
Dim dt = New DataTable
cmd.Parameters.Add("@tarikh", SqlDbType.NVarChar, 50).Value = dateserial
da = New SqlDataAdapter(cmd)
dt = New DataTable


da.Fill(dt)

DataGridView1.DataSource = dt
DataGridView1.Datamember = "tbvip"

piter11
دوشنبه 24 شهریور 1393, 12:49 عصر
con = New SqlConnection(My.Settings.Conn)

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip WHERE (tarikh=@tarikh)"


Dim clsdate As New clsdatetime
Dim todaydate As Date = Now
Dim datetoday As Date = clsdate.MiladiToShamsi(todaydate)
Dim dayserial As String = datetoday.Day.ToString
If datetoday.Day.ToString < 10 Then
dayserial = "0" + datetoday.Day.ToString
End If
Dim monthserial As String = datetoday.Month.ToString
If todaydate.Month.ToString < 10 Then
monthserial = "0" + todaydate.Month.ToString
End If
Dim dateserial As String = datetoday.Year.ToString + "/" + monthserial + "/" + dayserial.ToString
Dim dt = New DataTable
cmd.Parameters.Add("@tarikh", SqlDbType.NVarChar, 50).Value = dateserial
da = New SqlDataAdapter(cmd)
dt = New DataTable


da.Fill(dt)

DataGridView1.DataSource = dt
DataGridView1.Datamember = "tbvip"






اینو خودمم قبلا زده بودم این ارورو میده
Child list for field tbvip cannot be created

piter11
سه شنبه 25 شهریور 1393, 11:59 صبح
کسی میدونه مشکل کجاس ؟

piter11
چهارشنبه 26 شهریور 1393, 13:21 عصر
ما همچنان منتظریم

biotechsoft
پنج شنبه 27 شهریور 1393, 07:24 صبح
ای بابا مقدار dt رو پر نکردی که....
da هم که توی این کد استفاده ای نشده
دیتاست هم که نداری
خب الان گرید ویو دقیقا با چی باید پر شه؟؟؟؟؟
بنده خدایی که براش برنامه مینویسی 24 ساعت باید با خطامواجه شه و هر روز مزاحمت میشه...
پیشنهادم اینه قبل از ادامه کار حتما حتما لا اقل این چندتا دستور رو برای ارتباط با بانک درست یاد بگیر
select - delete - update و insert

piter11
پنج شنبه 27 شهریور 1393, 13:03 عصر
ای بابا مقدار dt رو پر نکردی که....
da هم که توی این کد استفاده ای نشده
دیتاست هم که نداری
خب الان گرید ویو دقیقا با چی باید پر شه؟؟؟؟؟
بنده خدایی که براش برنامه مینویسی 24 ساعت باید با خطامواجه شه و هر روز مزاحمت میشه...
پیشنهادم اینه قبل از ادامه کار حتما حتما لا اقل این چندتا دستور رو برای ارتباط با بانک درست یاد بگیر
select - delete - update و insert

مهندس خیلی ممنون که تونستید مشکلمو حل کنید

piter11
دوشنبه 31 شهریور 1393, 10:40 صبح
من کد بالارو به زیر تغییر دادم
con = New SqlConnection(My.Settings.Conn)

Dim clsdate As New clsdatetime
Dim todaydate As Date = Now
Dim datetoday As Date = clsdate.MiladiToShamsi(todaydate)
Dim dayserial As String = datetoday.Day.ToString
If datetoday.Day.ToString < 10 Then
dayserial = "0" + datetoday.Day.ToString
End If
Dim monthserial As String = datetoday.Month.ToString
If datetoday.Month.ToString < 10 Then
monthserial = "0" + datetoday.Month.ToString
End If
Dim dateserial As String = monthserial + "/" + dayserial.ToString

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip where tarikh like '%" + "@tarikh" + "%'"
cmd.Parameters.Clear()
cmd.Parameters.Add("@tarikh", SqlDbType.NVarChar).Value = Mid(dateserial, 5, 5)
da = New SqlDataAdapter
dt = New DataTable
Dim ds As New DataSet
MessageBox.Show("امروز تولد این اشخاص می باشد")
da.SelectCommand = cmd
da.SelectCommand.Connection = con


con.Open()
ds.Clear()
da.Fill(ds, "tbvip")
con.Close()
da.Fill(dt)

DataGridView1.DataSource = ds
DataGridView1.DataMember = "tbvip"

حالا میخوام تو تاریخ سال رو در نظر نگیره مثلا تاریخ تولد طرف 1369/06/10 با تاریخ 1393/06/10 یکی بدونه دستور like نوشتم ولی چیزی نشون نمیده کسی میدونه مشکلش کجاس

piter11
دوشنبه 31 شهریور 1393, 10:42 صبح
لاین 14 تا 20 مورد داره ممنون میشم راهنمایی کنید

biotechsoft
دوشنبه 31 شهریور 1393, 11:20 صبح
لاین 14 تا 20 مورد داره ممنون میشم راهنمایی کنید
این خط رو اینطوری اصلاح کن:



cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip where tarikh like '%' + @tarikh + '%'"

piter11
دوشنبه 31 شهریور 1393, 11:27 صبح
این خط رو اینطوری اصلاح کن:



cmd.CommandText = "SELECT name,family,tell,tarikh,adres FROM tbvip where tarikh like '%' + @tarikh + '%'"







انجام دادم ولی برای لاین 31 این ارورو میده
Could not find stored procedure 'False'.

biotechsoft
دوشنبه 31 شهریور 1393, 11:55 صبح
باید ds رو بعد از clear کردن مقدار دهی کنی
وایییییییی
من دیگه حوصله جواب دادن رو ندارم برنامتو بده برات بنویسم برای من راحتتره والا

dataking
دوشنبه 07 مهر 1393, 18:02 عصر
سلام
دوست خوبم از تابع تریم استفاده کن trim و از سمت چپش چند کاراکتر کم کن
البته من نمیدونم شما تاریخ را چجور ذخیره کردید. این هم مهمه