PDA

View Full Version : سوال: مشكل در زمان ذخیره کردن



port72
یک شنبه 06 مرداد 1392, 15:58 عصر
ارور در زمان ذخیره کردن 108033 .ممنون میشم برنامه رو ببینید و نظر بدید.

port72
دوشنبه 07 مرداد 1392, 21:25 عصر
کسی مشکل رو یعنی متوجه نشد.

port72
یک شنبه 20 مرداد 1392, 17:08 عصر
مدیر یه نگاه بنداز:افسرده:

vb341
یک شنبه 20 مرداد 1392, 20:10 عصر
دوست عزیز کد برنامه رو بزار تا بررسی بشه

port72
دوشنبه 21 مرداد 1392, 08:51 صبح
Imports System.Data.OleDb
Public Class sendbijac
Public connstring As String = "provider=Microsoft.ACE.OLEDB.12.0;Data source=|datadirectory|\dbng.accdb;persist security info = false"
Public conn As New OleDbConnection

Private Sub sendbijac_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Text1.Text = MiladiToShamsi(Now)


conn.ConnectionString = connstring

conn.Open()
loadlistview()
End Sub

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Try
Dim sqlquery As String = "insert into tbl_bijac (tarikh,barbari,carton,goni,som,name,address) values ('" & Text1.Text & "', '" & Text2.Text & "','" & Text4.Text & "','" & Text5.Text & "','" & Text6.Text & "','" & Text7.Text & "','" & Text8.Text & "')"
Dim sqlcommand As New OleDbCommand

With sqlcommand
.CommandText = sqlquery
.Connection = conn
.ExecuteNonQuery()
End With
MsgBox("one record successfully added..")

Text2.Clear()
Text4.Clear()
Text5.Clear()
Text6.Clear()
Text7.Clear()
Text8.Clear()

loadlistview()
Catch ex As Exception
MsgBox(ex.ToString)
End Try

End Sub
Sub loadlistview()
ListView1.FullRowSelect = True
ListView1.MultiSelect = False
ListView1.View = View.Details


ListView1.Columns.Clear()


ListView1.Columns.Add("شماره بیجک", 87, HorizontalAlignment.Left)
ListView1.Columns.Add("تاریخ", 70, HorizontalAlignment.Left)
ListView1.Columns.Add("باربری", 115, HorizontalAlignment.Left)
ListView1.Columns.Add("کارتن", 50, HorizontalAlignment.Left)
ListView1.Columns.Add("گونی", 50, HorizontalAlignment.Left)
ListView1.Columns.Add("جمع", 95, HorizontalAlignment.Left)
ListView1.Columns.Add("نام خانوادگی", 125, HorizontalAlignment.Left)
ListView1.Columns.Add("آدرس", 230, HorizontalAlignment.Left)


Dim sqlquery As String = "select * from tbl_bijac"
Dim sqlcommand As New OleDbCommand
Dim SqlAdpter As New OleDbDataAdapter
Dim TABLE As New DataTable

With sqlcommand
.CommandText = sqlquery
.Connection = conn
End With

With SqlAdpter
.SelectCommand = sqlcommand
.Fill(TABLE)
End With

For i = 0 To TABLE.Rows.Count - 1
With ListView1
.Items.Add(TABLE.Rows(i)("ID"))
With .Items(.Items.Count - 1).SubItems
.Add(TABLE.Rows(i)("tarikh"))
.Add(TABLE.Rows(i)("barbari"))
.Add(TABLE.Rows(i)("carton"))
.Add(TABLE.Rows(i)("goni"))
.Add(TABLE.Rows(i)("som"))
.Add(TABLE.Rows(i)("name"))
.Add(TABLE.Rows(i)("address"))

End With
End With

Next

End Sub

Public Function MiladiToShamsi(ByVal MDate As Date) As String
'تبدیل تاریخ
MiladiToShamsi = ""

Dim pc As New Globalization.PersianCalendar

Dim Sal As Integer = pc.GetYear(MDate)
Dim Mah As Integer = pc.GetMonth(MDate)
Dim Roz As Integer = pc.GetDayOfMonth(MDate)

MiladiToShamsi = Format(Sal, "0000") & "/" & Format(Mah, "00") & "/" & Format(Roz, "00")

Return MiladiToShamsi

End Function
End Class

Mani_rf
سه شنبه 22 مرداد 1392, 15:56 عصر
باید 1 عکس از خطایی که میده بزاری تا بتونیم بهت بگیم که مشکل کجاست. هرچند که اگر متن خطایی که صارد میشه رو بخونی خودت هم میتونی متوجه بشی

port72
چهارشنبه 23 مرداد 1392, 11:45 صبح
اين فايل عكس ارور هستش

Naghibi
چهارشنبه 23 مرداد 1392, 12:21 عصر
کلماتی مثل sum کلمات کلیدی و تعریف شده هستند و شما نباید از این اسامی بعنوان اسم فیلد استفاده کنین
اسم فیلد sum رو عوض کنین، درست میشه

port72
چهارشنبه 23 مرداد 1392, 15:26 عصر
سلام
دوست عزیز درست شد اما وقتي دكمه save زده میشه رکوردهای قبلی در ListView دو الی سه بار نشان دهده میشه.اما وقتی برنامه رو بسته و دوباره اجرا میکنم رکورد در حالت عادی save شده و هیچ مشکلی ندارد تا زمانی که یک رکورد جدید ذخیره شود.(رکوردهای قبلی در ListView دو الی سه بار نشان دهده میشه)

البته سورس رو کاملتر در بالا قرار دادم.

Naghibi
چهارشنبه 23 مرداد 1392, 15:44 عصر
دقت کنین قبل از اینکه دکمه ذخیره رو بزنین مثلا 4 تا سطر نشون داده میشه، بعد از دکمه ذخیره هم بدون اینکه سطرهای گرید رو پاک کنین دوباره دستور پرکردن گرید رو صدا می زنین. حالا 4 تا سطر از قبل بوده، 5 تا الان دیتابیس داره جمعا 9 تا سطر به شما نشون میده.
قبل از اینکه دستور پرکردن گرید رو اجرا کنین باید گرید رو خالی کنین

port72
چهارشنبه 23 مرداد 1392, 16:30 عصر
چطور میتونم این کار رو انجام بدم.:خجالت:

systam
چهارشنبه 23 مرداد 1392, 19:42 عصر
من هر کاری کردم نتونستم اطلاعات رو در بانک ثبت کنم

برای نمایش اطلاعات از از گریدویو استفاده کنید
این یک نمونه کد برای پر کردن گرید
Dim dta As New OleDbDataAdapter("select * from k", "provider=microsoft.jet.oledb.4.0;data source=karim.mdb;")
Dim ds As New DataSet
Dim bs As New BindingSource
ds.Clear()
dta.Fill(ds, "k")
bs.DataSource = ds
bs.DataMember = "k"
Me.DataGridView1.DataSource = bs
اگه بتونید بانک برنامه رو Sql کنید خیلی راحت تر میشه کار


چند جای کارتون مشکل داره
1- برای کنترول های روی فرم از اسم استفاده کنید بهتره
2 - برای insert کردن اطلاعات در بانک لقمه رو نپیچونید راحت تر کد ها بنویسید
نمونه کد
Dim con As New OleDbConnection
con.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=karim.mdb;"
Dim command As New OleDbCommand
command.Connection = con
command.CommandText = "update k set id=@id , name=@name ,family=@family,code_m=@code_m where id = '" & TextBox1.Text & "'"
command.Parameters.AddWithValue("id", Trim(TextBox1.Text))
command.Parameters.AddWithValue("name", Trim(TextBox2.Text))
command.Parameters.AddWithValue("family", Trim(TextBox3.Text))
command.Parameters.AddWithValue("code_m", Trim(TextBox4.Text))
con.Open()
command.ExecuteNonQuery()
con.Close()


امیدوارم مطالبی که نوشتم بدردتون بخوره
کد هایی که نوشتم باید چند جایش تغییر کنه ها
یا علی

port72
پنج شنبه 24 مرداد 1392, 08:41 صبح
دوستان مشکل نشان دادن چند رکورد حل شد .در قسمت loadlistview بین خط 44 تا 47 کد ListView1.Items.Clear رو دارد کنید.
باتشکر از پیگیری های شما دوستان.

Naghibi
پنج شنبه 24 مرداد 1392, 09:20 صبح
ListView1.Clear برای حذف سطرهای لیست استفاده میشود.