PDA

View Full Version : سوال: اشکالات من در ADO.NET در VB.NET



JaVa
یک شنبه 11 تیر 1391, 14:10 عصر
سلام و خسته نباشید به دوستان گرامی.....

من دارم تایپیک ADO.NET در VB.NET رو مطالعه می کنم بعد به چند تایی مشکل برخوردم که از شما درخواست کمک می کنم.

این برنامه :
89031

این هم بانک:
http://wdl.persiangig.com/pages/download/?dl=http://mrgvb.persiangig.com/Bank.rar

خودم خیلی روش کار کردم و آخرش هم نفهمیدم که چطور میشه:خجالت:

JaVa
یک شنبه 11 تیر 1391, 15:35 عصر
به خودم گفتم شاید دانلودش براتون سخت باشه کدش رو گذاشتم:
کده اصلاح شده
Imports System.Data
Imports System.Data.SqlClient
Imports System.Collections

Public Class Form1
#Region "Varible"
Dim cmd As New SqlCommand()
Dim cnn As New SqlConnection()
Dim sda As New SqlDataAdapter()
Dim ds As New DataSet()
Dim arr As New ArrayList()

#End Region

Private Sub connection()
cnn.ConnectionString = "data source=MRG-PC;initial catalog=Personel;Integrated Security=true"
End Sub

Private Function loadall() As DataSet
connection()
cmd.CommandText = "Select *From Personel"
cmd.Connection = cnn
sda.SelectCommand = cmd
sda.SelectCommand.Connection = cnn
cnn.Open()
sda.Fill(ds, "Barnamevevis")
cnn.Close()
Return ds
End Function

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

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

cmd.CommandText = "Insert Into Personel(Name,Family,Tel)Values(@Name,@Family,@Tel )"
cmd.Parameters.Clear()
cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = TextBox1.Text
cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = TextBox2.Text
cmd.Parameters.Add("@Tel", SqlDbType.Char).Value = TextBox3.Text

Insert(cmd)
loadall()
DataGridView1.DataSource = ds
DataGridView1.DataMember = "Barnamevevis"

End Sub

Private Sub Insert(ByVal Cmd As SqlCommand)
connection()
Cmd.Connection = cnn
cnn.Open()
Cmd.ExecuteNonQuery()
cnn.Close()
End Sub

End Class
این هم بانک:

amir3321
دوشنبه 12 تیر 1391, 16:13 عصر
با سلام
خوب کدی که گذاشتی مشکل دارد یا ندارد
این پارامتر نوع ان با نوع بانک تفاوت دارد

cmd.Parameters.Add("@Tel", SqlDbType.Char).Value = TextBox3.Text

BIGINT TO CHAR

JaVa
دوشنبه 12 تیر 1391, 16:39 عصر
سلام...
آره درست میگید من الان تمام مشکلات رو برطرف کردم فق تنها این مونده که وقتی من یه عملیات رو انجام می دم توی دیتا گرایدم دو بار اطلاعات ثبت میشه...
برای اطلاعات بیشتر می تونید به آدرس (http://barnamenevis.org/showthread.php?348989-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B1%DA%A9%D9%88%D8%B1%D8%AF-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%88-%D8%AF%D9%88%D8%A8%D8%A7%D8%B1%D9%87-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D8%B4%D8%AF%D9%87-%D8%AF%D8%A7%D8%AF%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-DataGrideView)برید.



Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
#Region "Varible"
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()
Dim index As Integer
#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ConnectionToDB()
DGView.DataSource = ds
DGView.DataMember = "MRG"
End Sub

Private Sub ConnectionString()
cnn.ConnectionString = "Data Source=MRG-PC\SQLEXPRESS; Initial Catalog=Bank;Integrated Security=true"
End Sub

Private Function ConnectionToDB() As DataSet
ConnectionString()
cmd.CommandText = "Select *From Table1"
cmd.Connection = cnn
sda.SelectCommand = cmd
sda.SelectCommand.Connection = cnn
cnn.Open()
sda.Fill(ds, "MRG")
cnn.Close()
Return ds
End Function

Private Sub UID(ByVal CMD As SqlCommand)
ConnectionString()
CMD.Connection = cnn
cnn.Open()
CMD.ExecuteNonQuery()
cnn.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

cmd.CommandText = "Insert Into Table1(Name,Family,Phone) Values(@Name,@Family,@Phone)"

cmd.Parameters.Clear()
cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = TextBox1.Text
cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = TextBox2.Text
cmd.Parameters.Add("@Phone", SqlDbType.Char).Value = TextBox3.Text
UID(cmd)
ConnectionToDB()
'DGView.DataSource = ds
'DGView.DataMember = "MRG"

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cmd.CommandText = ("Delete From table1 where ID=@ID")
cmd.Parameters.Clear()
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = index
UID(cmd)
ConnectionToDB()
DGView.DataSource = ds
DGView.DataMember = "mrg"
End Sub

Private Sub DGView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGView.Click
index = DGView.CurrentRow.Cells(0).Value
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
cmd.CommandText = "Update set Name=@name,Family=@Family,Phone=@Phone Where ID=@ID"
cmd.Parameters.Clear()
cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = TextBox1.Text
cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = TextBox2.Text
cmd.Parameters.Add("@phone", SqlDbType.Char).Value = TextBox3.Text

UID(cmd)
ConnectionToDB()
DGView.DataSource = ds
DGView.DataMember = "MRG"

End Sub


End Class

amir3321
سه شنبه 13 تیر 1391, 13:30 عصر
با سلام
فکر کنم چون از این تابع ConnectionToDB در هر مرتبه از عملیات ها استفاده می کنی قبل از پر کردن دوباره آن باید یک بار دیتاست را clear نمایید . در همان تابع