2017-01-18 9 views
-3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Con.Open() 
    Dim Str As String = "INSERT INTO db (ID,companyname,companyaddress,companycontact,contactperson,contactnumber,UserLogin,mDate) SELECT @ID,@companyname,@companyaddress,@companycontact,@contactperson,@contactnumber,@UserLogin,@mDate FROM db WHERE Userlogin = @Userlogin" 

    Dim Cmd As New OleDbCommand 
    With Cmd 

     .CommandText = Str 

     .Parameters.AddWithValue("@ID", f1.Text) 
     .Parameters.AddWithValue("@companyname", f2.Text) 
     .Parameters.AddWithValue("@companyaddress", f3.Text) 
     .Parameters.AddWithValue("@companycontact", f4.Text) 
     .Parameters.AddWithValue("@contactperson", f5.Text) 
     .Parameters.AddWithValue("@contactnumber", f6.Text) 
     .Parameters.AddWithValue("@UserLogin", f12.Text) 
     .Parameters.AddWithValue("@mDate", DateTimePicker1.Text) 
     .Connection = Con 

     .ExecuteNonQuery() 
    End With 
    If Cmd.ExecuteNonQuery() Then 
     Con.Close() 
     MessageBox.Show("New Record is Added successfully.", "Record Saved") 
     Call clear() 

    Else 

     MsgBox("Could Not Insert Record!!! ", "Already Entered") 
     Return 
    End If 
End Sub 
+2

ようこそ!これまでに何を試しましたか?私たちのお手伝いをするために、[最小限の、完全で検証可能な例](https://stackoverflow.com/help/mcve)を追加してください。コードを説明する文脈を追加してください。 – abpatil

+0

間違いはありますか? '.Parameters.Add(" @ param "、SqlDbType).Value ='を使って、それぞれの 'SqlDataType'を明示的に設定します。 – Bugs

+0

私はこの解決策を得ました – Dessa

答えて

-1

私はSELECTを使用する理由を理解していませんか?私はあなたがこれをしたいと思う:

VALUE(@ ID、@会社名、@ companyaddress、@ companycontact、@ contactperson、@会社名、会社名、会社の住所、会社の連絡先、 contactnumber、@ userloginの、@ mDate)

+0

複製目的のために、二重入力を避けるためにselectをselectに使用しようとしています – Dessa

+0

これを避けるには、INSERT INTOではなくREPLACE INTOを試してください。プライマリキーが存在する場合、MySQLはまずこの行を削除して通常の挿入を行います。 – muffi

+0

あなたの問題を解決しようとすると-1? LOL – muffi

1

あなたは日付を渡す必要があります。

.Parameters.AddWithValue("@mDate", DateTimePicker1.Value) 
0

のExecuteNonQuery()メソッドを呼び出すときにすべてのエラーを取得するのですか? あなたのコードをチェックしました。私は2つのコメントを持っています:
(1)コードでExecuteNonQuery()を2回呼び出しています:
+ ------------------- ----- +
'ファーストコール
.ExecuteNonQuery()

で終了する' 第二コール
Cmd.ExecuteNonQuery場合は()すると
+ ------------ ------------ +
目的を2回呼びますか?
2. Cmd.ExecuteNonQuery()メソッドを呼び出す前に、接続が開かれていることを確認します。

あなたはまだ問題に直面している場合は、私はいくつかの貴重な情報をここに関連する問題が見つかりました: How can I Insert data into SQL Server using VBNet

私はこれが役に立てば幸い!

+0

ありがとう – Dessa

関連する問題