私はsprocを実行する関数に渡す関数で辞書を作成します。VB.NET MySqlCommandストアドプロシージャパラメータの順序?
Dim PParamDict As New Dictionary(Of String, String)
PParamDict.Add("sname", name)
PParamDict.Add("sdescription", description)
PParamDict.Add("sLoggedInID", LoggedInID)
PParamDict.Add("sCompanyID", CompanyID)
辞書は、関数PParamDictに渡される - > ParameterDict
Dim dbComm As New MySqlCommand(ProcedureName, PConnection)
Dim pair As KeyValuePair(Of String, String)
For Each pair In ParameterDict
dbComm.Parameters.AddWithValue(pair.Key, pair.Value)
Next
パラメータが辞書から追加されます。
これは簡単なsprocです。特別なことはなく、簡単な挿入物です。
CREATE PROCEDURE `NewCollection`(
IN `sLoggedInID` INT(5),
IN `sCompanyID` INT(5),
IN `sname` VARCHAR(20),
IN `sdescription` VARCHAR(500))
BEGIN
INSERT INTO `collection`
(`userid`, `companyid`, `name`, `description`, `generated`)
VALUES
(sLoggedInID, sCompanyID, sname, sdescription, CURRENT_TIMESTAMP);
END
これは限りPParamDict.Add文はそのためにあるように動作します。彼らは別の順序でいる場合、彼らが来るように渡されます。これは私が今まで見た中で最もばかげたことです、私はsprocの手紙のための文字を定義されているMySqlCommandに気の鍵を渡しています。私は何かが欠けている必要があります、助けてください!
私はMySqlParameter名は文字で始まるべきであると考えます「?」ストアドプロシージャのパラメータについても同じです。私はこれがあなたの問題の理由であるかどうかは分かりませんが、試してみることができます。 – Steve