PDA

View Full Version : يكبار ديگه يه جوون مرد كمك كنه



didaaa
شنبه 20 تیر 1388, 14:30 عصر
سلام:
راستش من يك مشكل در ثبت اطلاعات دارم تو بانك دارم وقتي مي خوام يك مقداري وارد يانك كنم
بار اول قبول ميكنه و بار دوم اطلاعات جديد كه مي خوام كه مي خوام وارد كنم بعلاوه قبليا و تكراري وارد بانك ميشه
يعني بار اول a
بار دوم a+b
بار سومa+b+c
و الي آخر تا زماني كه فرمو ببندم و زماني كه دوباره فرم باز مي كنم روز از نو روزي از نو....
حالا يه بچه باحال كمكمون كنه كلي معرفت تركونده


اينم كد:



Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections

Public Class Form1
Dim cnn As New SqlConnection
Dim cmd As New SqlCommand
Dim sda As New SqlDataAdapter
Dim ds As New DataSet
Dim arr As New ArrayList
Private Sub Connect()
cnn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\D.mdf;Integrated Security=True;User Instance=True"

End Sub
Private Function LoadAll()
Connect()
cmd.CommandText = "select * from Table1"
cmd.Connection = cnn
sda.SelectCommand = cmd
sda.SelectCommand.Connection = cnn
cnn.Open()
sda.Fill(ds, "Table1")
cnn.Close()
Return ds

End Function
Private Sub Update(ByVal cmd As SqlCommand)
Connect()
cmd.Connection = cnn
cnn.Open()
cmd.ExecuteNonQuery()
cmd.Parameters.Clear()
cnn.Close()

End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
LoadAll()
DataGridView1.DataSource = ds
DataGridView1.DataMember = "Table1"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
arr.Add(TextBox1.Text)
arr.Add(TextBox2.Text)
cmd.CommandText = "insert into Table1(Name,Lname)Values(@Field1,@Field2)"


cmd.Parameters.Clear()
cmd.Parameters.Add("@Field1", SqlDbType.NVarChar).Value = arr(0).ToString()
cmd.Parameters.Add("@Field2", SqlDbType.NVarChar).Value = arr(1).ToString()
arr.Clear()

Update(cmd)
LoadAll()
DataGridView1.DataSource = ds
DataGridView1.DataMember = "Table1"


End Sub

mn_zandy63
شنبه 20 تیر 1388, 16:10 عصر
کدت موقع insert به نظر نمیاد ایرادی داشته باشه.
ولی در تابع LoadAll یادت رفته ds رو خالی کنی.
چون متغیر ds رو عمومی تعریف کردی.
اول تابع LoadAll دستور ds.Clear رو اضافه کن.

اوبالیت به بو
شنبه 20 تیر 1388, 21:27 عصر
1) فيلد Name رو تغيير نام بده، Name در SQL يك كلمه كليدي هستش.
2) در متد LoadAll قبل از اين خط:

sda.Fill(ds, "Table1")
ds.Clear رو اضافه كن. يا اينكه شي نمونه رو قبل از خط بالا بسازي نه در هنگام تعريف ds.