sproc を実行する関数に渡す関数で辞書を作成します。
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にいまいましいキーを渡しています。私は何かが足りないに違いない、助けてください!