PDA

View Full Version : مشكل در DataGridView در Vb.Net



mgh64120
چهارشنبه 26 فروردین 1388, 13:36 عصر
با عرض سلام و خسته نباشيد خدمت شما عزيزان
:چشمک:
من يه DataGridView براي فاكتور فروش طراحي كرده ام كه ميخوام همزمان با واردكردن ركورد (Row) داده ها در ديتابيس كه Sql Server است ثبت شود. در تاپيك هاي ديگر اشاره اي شد ولي اگر يكي از دوستان لطف كنه و يه مثال كامل برام بزاره ممنون ميشم.
اگه ممكنه در مثالتون در ديتاگريدش از ستونهاش به غير TextBox از ChekBox و ComboBox هم استفاده كنيد و مورد ديگر نحوه ويرايش ركوردهايي از ديتاگريد كه قبلا ثبت شده است

ali_md110
پنج شنبه 27 فروردین 1388, 22:01 عصر
شما باید دیتاگرد رو به جدول بایند کنید
مثال زیر یک مثال ساده هست

Private dataTable1 As New DataTable()
Private oleDbConnection1 As New SqlConnection()
Private oleDbDataAdapter1 As New SqlDataAdapter()
Private Sub Action()
Me.oleDbConnection1.ConnectionString = "Data Source=(local)\sqlexpress;Initial Catalog=mydb;Integrated Security=True;Pooling=False"
Me.oleDbDataAdapter1.SelectCommand = New SqlCommand("SELECT Field1, Field2 FROM Table1", Me.oleDbConnection1)
Me.oleDbDataAdapter1.Fill(Me.dataTable1)
Me.DataGridView1.DataSource = dataTable1
Me.oleDbDataAdapter1.UpdateCommand = New SqlCommand("UPDATE Table1 SET Field1 = @field1, Field2 = @field2 WHERE field1 = @field1", Me.oleDbConnection1)
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@field1", GetType(String)).SourceColumn = "Field1"
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@field2", GetType(String)).SourceColumn = "Field2"
Me.oleDbDataAdapter1.UpdateCommand.Parameters.AddW ithValue("@field1", GetType(Integer)).SourceColumn = "field1"

'Initialize INSERT Command.
Me.oleDbDataAdapter1.InsertCommand = New SqlCommand("INSERT INTO Table1 (Field1, Field2) VALUES (@field1, @field2)", Me.oleDbConnection1)
Me.oleDbDataAdapter1.InsertCommand.Parameters.AddW ithValue("@field1", GetType(String)).SourceColumn = "Field1"
Me.oleDbDataAdapter1.InsertCommand.Parameters.AddW ithValue("@field2", GetType(String)).SourceColumn = "Field2"

'Initialize DELETE Command.
Me.oleDbDataAdapter1.DeleteCommand = New SqlCommand("DELETE FROM Table1 WHERE field1 = @field1", Me.oleDbConnection1)
Me.oleDbDataAdapter1.DeleteCommand.Parameters.AddW ithValue("@field1", GetType(Integer)).SourceColumn = "field1"

Me.oleDbDataAdapter1.Update(dataTable1)


End Sub


ممکنه شما بخواهید یک ستون کامبوباکس رو از جدول کالا پر کنید
ستونهای کامبو باکس رو بصورت ران تایم یا در حالت طراحی هم میتونید اضافه کنید و با یک دیتاریدر یا یک دیتاتیبل از جدول کالا پر کنید

خاصیت DataPropertyNameستون کامبوباکس رو به ستون جدولی ست کنید که در حال ثبت رکورد دران هستید

col_kala_name = New DataGridViewComboBoxColumn
With col_kala_name
.Name = "col_kala_name"
.HeaderText = "شــــرح کالاو خدمات"
.DataPropertyName = "id_kala"
.Width = 400
من در مثال بالا یک کابوباکس دارم که توسط جدول کالا پر کردم ولی چون خاصیت DataPropertyName اونو به فیلد id_kala در جدول فروش ست کردم عمل زخیره در جدول فروش انجام میشه
اگر وقت کردم یه مثال عالی برات میفرستم

mgh64120
شنبه 29 فروردین 1388, 00:10 صبح
با تشكر فراوان از شما ali_md110 اگه مثال عاليه رو برام بفرستي ممنون ممنون ميشم.
راستي راجبه ويرايش هم يه توضيحي بديد.
متشكرم