2016-11-07 16 views
0

私は、Windowsフォームに次のコードを持っているが、私は何のアクセス「のExecuteNonQueryは」引数WinフォームSQLエラー

のこの番号を受け付けていないため、エラー

オーバーロードの解決に失敗した取得しています

私は検索したが、私が見ているものはすべてパラメータの数に関係しているようだ。私は、コードが期待している数字を提供しています(43)、誰かが正しい方向に私を向けることができますか?

Public Class wfRecDB 
    Dim cn As New SqlConnection("Data Source=.;Initial Catalog=RecDb;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;")  
    Dim cmd As New SqlCommand 
    Dim dr As SqlDataReader 

    Private Sub wfRecDB_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
     cmd.Connection = cn 
    End Sub 

    Private Sub btnCon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCon.Click 
     If cbEnv.Text <> "" Then 
      cn.Open() 
      cmd.CommandText = "insert into recdb.recs.recdbextract (Environment,Unreconciled,Reconciled,Account,AcctRel,AccInc,AcctPro,Address,AssClass,BankAcc,BrkRel,CBNwork,CCTE,CIB,ClCont,ClCparty,ClFatca,ClFatcaDet,ExtRef,FamGp,FundLd,GenVar,IsaDec,LocStr,MPLocPat,MPOutPat,MPPatDet,MPPatHead,MPProdPat,NomAcc,NomAccLink,OutAssCl,OutMktCam,SippAcc,SippBCE,SippBenReq,SippLta,SippPaye,SippPenInc,SippRegPay,UnitPrice,UserGroups,UserPerms) values ('" & cbEnv.Text & "','" & rbUnreconciled.Text & "','" & rbReconciled.Text & "','" & cbAccount.Text & "', '" & cbAccountRelationship.Text & " ','" & cbAccountIncomeDistributionChoice.Text & "','" & cbAccountProfile.Text & "','" & cbAddress.Text & "','" & cbAssetClassification.Text & "','" & cbBankAccount.Text & "','" & cbBrokerRelationship.Text & "','" & cbClientBroker.Text & "','" & cbClientCorp.Text & "','" & cbClientInd.Text & "','" & cbClientContext.Text & "','" & cbClientCparty.Text & "','" & cbClientFATCA.Text & "','" & cbClientFATCADetails.Text & "','" & cbExtRefPlfmOne.Text & "','" & cbFamilyGroups.Text & "','" & cbFundLoader.Text & "','" & cbGenericVariables.Text & "','" & cbIsadec.Text & "','" & cbLocationStructure.Text & "','" & cbtbMPLocation.Text & "','" & cbMPOut.Text & "','" & cbPatDet.Text & "','" & cbPatHead.Text & "','" & cbProd.Text & "','" & cbNomAcc.Text & "','" & cbNomAccLink.Text & "','" & cbAssetClassification.Text & "','" & cbOutCam.Text & "','" & cbSIPPAcc.Text & "','" & cbSIPPBCE.Text & "','" & cbSIPPBen.Text & "','" & cbSIPPLTA.Text & "','" & cbSIPPPAYE.Text & "','" & cbSIPPPen.Text & "','" & cbSIPPReg.Text & "','" & cbUnitPrice.Text & "','" & cbUserGroups.Text & "','" & cbUserPerm.Text & "')" 
      cmd.ExecuteNonQuery("") 
      cn.Close() 
      cbEnv.Text = "" 
      rbUnreconciled.Text = "" 
      rbReconciled.Text = "" 
     End If 
    End Sub 
+3

[SQLインジェクションアラート](http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - SQL文を連結しない** - SQLインジェクションを避けるために、**パラメータ化されたクエリ**を使用する –

答えて

3

誤差は非常に明確である - あなたがここに供給しているように、単一の文字列パラメータを取るExecuteNonQuery()のないオーバーロードはありません。

cmd.ExecuteNonQuery("") 

ExecuteNonQuery()はパラメータ期待していない - これだけの変化をそのコード行は

cmd.ExecuteNonQuery() 

になります。あなたは大丈夫です。

+0

うまくいった – user5367782

+0

@ user5367782:優秀!この回答が問題の解決に役立った場合は、[**この回答を受け入れる**](http://meta.stackoverflow.com/q/5234/153998)をご利用ください。これは、自分の時間を費やしてあなたを助けてくれる人たちに感謝します*。 –

関連する問題