PDA

View Full Version : مشکل در updatecommand



bhz1919
پنج شنبه 14 اردیبهشت 1385, 11:13 صبح
با سلام من یک قطعه کد با updatecommand نوشتم والی موقع اجرا این دستور پیغام میده که
دستور insertcommand معتبر وجود ندارد در صورتی که قبلا عمل درج انجام گرفته است

سور س آن به شرح زیر است:

به نظر شما مشکل از چیست؟

با تشکر.

Imports System.Data.SqlClient
Public Class virayesh
Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()
MyBase.New()

'This call is required by the Windows Form Designer.
InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.DataGrid1 = New System.Windows.Forms.DataGrid
Me.Button1 = New System.Windows.Forms.Button
Me.Button2 = New System.Windows.Forms.Button
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginIni t()
Me.SuspendLayout()
'
'DataGrid1
'
Me.DataGrid1.DataMember = ""
Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.DataGrid1.Location = New System.Drawing.Point(128, 64)
Me.DataGrid1.Name = "DataGrid1"
Me.DataGrid1.Size = New System.Drawing.Size(392, 272)
Me.DataGrid1.TabIndex = 0
'
'Button1
'
Me.Button1.Font = New System.Drawing.Font("Times New Roman", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(178, Byte))
Me.Button1.Location = New System.Drawing.Point(344, 376)
Me.Button1.Name = "Button1"
Me.Button1.TabIndex = 1
Me.Button1.Text = "تایید"
'
'Button2
'
Me.Button2.Font = New System.Drawing.Font("Times New Roman", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(178, Byte))
Me.Button2.Location = New System.Drawing.Point(192, 376)
Me.Button2.Name = "Button2"
Me.Button2.TabIndex = 2
Me.Button2.Text = "خروج"
'
'virayesh
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(648, 414)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.DataGrid1)
Me.Name = "virayesh"
Me.RightToLeft = System.Windows.Forms.RightToLeft.Yes
Me.Text = "ویرایش"
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit( )
Me.ResumeLayout(False)

End Sub

#End Region
Dim myDataTable3 As New DataTable
Dim dt As New DataTable
Dim drow As DataRow
Dim ds As New DataSet
Dim webref As New hesabdari.Service1
Private Sub virayesh_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ds = listamell().Copy

createtbl()

dt = ds.Tables("ff").Copy

For i = 0 To dt.Rows.Count - 1
drow = myDataTable3.NewRow()
drow(0) = dt.Rows(i)(0)
drow(1) = dt.Rows(i)(1)
drow(2) = dt.Rows(i)(2)
drow(3) = dt.Rows(i)(3)
drow(4) = dt.Rows(i)(4)
drow(5) = dt.Rows(i)(5)
myDataTable3.Rows.Add(drow)
Next



End Sub
Public Sub createtbl()


Dim column5 As DataColumn = New DataColumn _
("id26", GetType(System.String))
myDataTable3.Columns.Add(column5)
Dim column6 As DataColumn = New DataColumn _
("id7", GetType(System.String))
myDataTable3.Columns.Add(column6)
myDataTable3.Columns.Add(New DataColumn("name1"))
Dim column12 As DataColumn = New DataColumn _
("id3", GetType(System.String))
myDataTable3.Columns.Add(column12)
Dim column3 As DataColumn = New DataColumn _
("id4", GetType(System.String))
myDataTable3.Columns.Add(column3)
Dim column4 As DataColumn = New DataColumn _
("id5", GetType(System.String))
myDataTable3.Columns.Add(column4)
Dim column7 As DataColumn = New DataColumn _
("id8", GetType(System.String))
myDataTable3.Columns.Add(column7)
Dim column8 As DataColumn = New DataColumn _
("id6", GetType(System.String))
myDataTable3.Columns.Add(column8)
Dim column9 As DataColumn = New DataColumn _
("id9", GetType(System.String))
myDataTable3.Columns.Add(column9)
Dim column91 As DataColumn = New DataColumn _
("id91", GetType(System.String))
myDataTable3.Columns.Add(column91)



ds.Tables.Add(myDataTable3)

myDataTable3.TableName = "namestable3"



DataGrid1.SetDataBinding(ds, "namestable3")

Dim dgt As DataGridTableStyle = New DataGridTableStyle
dgt.MappingName = "namestable3"


Dim dgtbc As DataGridTextBoxColumn = _
New DataGridTextBoxColumn
dgtbc.MappingName = "id26"
dgtbc.HeaderText = "کد"
dgtbc.Width = 100
dgtbc.ReadOnly = True
dgt.GridColumnStyles.Add(dgtbc)



dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id7"
dgtbc.HeaderText = "نوع عامل"
dgtbc.Width = 100
dgtbc.ReadOnly = True
dgt.GridColumnStyles.Add(dgtbc)


dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "name1"
dgtbc.HeaderText = "نام عامل"
dgtbc.Width = 100
dgtbc.ReadOnly = True
dgt.GridColumnStyles.Add(dgtbc)

dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id3"
dgtbc.HeaderText = "نام خانوادگی"
dgtbc.Width = 100
dgtbc.ReadOnly = True
dgt.GridColumnStyles.Add(dgtbc)


dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id4"
dgtbc.HeaderText = "شماره تلفن"
dgtbc.Width = 100
dgt.GridColumnStyles.Add(dgtbc)

dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id5"
dgtbc.HeaderText = "آدرس"
dgtbc.Width = 100
dgt.GridColumnStyles.Add(dgtbc)

dgtbc = New DataGridTextBoxColumn
dgtbc.MappingName = "id8"
dgtbc.HeaderText = "توضیح فعالیت"
dgtbc.Width = 100
dgt.GridColumnStyles.Add(dgtbc)


DataGrid1.TableStyles.Add(dgt)

End Sub

Public Function listamell() As DataSet

Dim ds As New DataSet
Dim i As Integer
Dim st1, cmd1 As String
Dim cmd As New SqlCommand
st1 = "Server=.;Database=hesabdari;integrated security=true;"
cmd1 = "select distinct * from amelkh"
Dim cn As New SqlConnection(st1)
Dim da As New SqlDataAdapter(cmd1, cn)

cn.Open()
da.Fill(ds, "ff")


cn.Close()

Return ds

End Function
Public Function updatesh(ByVal ds1 As DataSet) As DataSet

Dim ds As New DataSet
Dim i As Integer
Dim st1, cmd1 As String
Dim cmd As New SqlCommand
st1 = "Server=.;Database=hesabdari;integrated security=true;"
cmd1 = "select distinct * from amelkh"
Dim cn As New SqlConnection(st1)
Dim da As New SqlDataAdapter(cmd1, cn)

cn.Open()

da.Fill(ds1.Tables(0))

cmd = New SqlCommand("UPDATE amelkh SET phoneno = @phoneno,moshaddr=@moshaddr,tozihmosh=@tozihmosh " & _
"WHERE namesh = @namesh1", cn)

cmd.Parameters.Add("@phoneno", SqlDbType.NChar, 5, "phoneno")
cmd.Parameters.Add("@moshaddr", SqlDbType.NChar, 5, "moshaddr")
cmd.Parameters.Add("@tozihmosh", SqlDbType.NChar, 5, "tozihmosh")


da.UpdateCommand = cmd

da.Update(ds1.Tables(0))


cn.Close()

Return ds

End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ds.Tables.Clear()
ds.Tables.Add(myDataTable3)
updatesh(ds.Copy)
End Sub
End Class

HO457
پنج شنبه 14 اردیبهشت 1385, 11:29 صبح
اگه لطف کنی کدت رو داخل تگ کد قرار بدی خیلی بهتره.
در ضمن برای اضافه کردن به جدل از command و دستور insert خود sql استفاده کن

ali_kolahdoozan
پنج شنبه 14 اردیبهشت 1385, 12:47 عصر
اولا بزارش درون تگ کد دوما خیلی کارو سخت کردی برای update از sqlcommand ها استفاده کن اگرم بلد نیستید بگید تا . نه اصلا همینجا یادم اومد توی قسمت #C یه نمونه برنامه با قابلیت سرچ و ذف و اضافه تصحیح گذاشتم در تاپیک نمونه برنامه برای دوستان اون رو ببینید

bhz1919
دوشنبه 18 اردیبهشت 1385, 10:58 صبح
ر از دوستان
مشکلم حل شد

bhz1919
دوشنبه 18 اردیبهشت 1385, 10:58 صبح
با تشکر
مشکلم حل شد.