bhz1919
پنج شنبه 14 اردیبهشت 1385, 12: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
دستور 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