このメソッドを文字列パラメーターのみでテストしたところ、完全に機能しました。したがって、後で追加したDateTime(datapubl)タイプのパラメーターの設定に誤りがあると確信しています。前もって感謝します!
ちなみに、CatalogCreateFilmsTest sprocが実行され、正常に動作しています。
アンナ
public static bool CreateFilmTest(string nume, string datapubl)
{
DbCommand com = GenericDataAccess.CreateCommand();
com.CommandText = "CatalogCreateFilmTest";
DbParameter param = com.CreateParameter();
param.ParameterName = "@nume";
param.Value = nume;
param.DbType = DbType.String;
param.Size = 200;
com.Parameters.Add(param);
param = com.CreateParameter();
param.ParameterName = "@datapubl";
param.Value = datapubl;
param.DbType = DbType.DateTime;
com.Parameters.Add(param);
int result = -1;
try
{
result = GenericDataAccess.ExecuteNonQuery(com);
}
catch
{
//
}
return (result >= 1);
}
編集:問題は、ストアドプロシージャが実行されないことです(テーブルに行を挿入する必要がありますが、実行されません)。エラーはありませんが、正しい結果でもありません。
編集:クリス、ここに完全な例があります:
CREATE PROCEDURE CatalogCreateFilmTest(
@nume nvarchar(1500),
@datapubl datetime
)
AS
INSERT INTO Filme
(nume, datapubl)
VALUES
(@nume, @datapubl)
;
GO
のために働く:
EXEC CatalogCreateFilmTest 'achu', '';
次に、次のようにCreateFilmTestを呼び出します。
bool success = FilmsAccess.CreateFilmTest(newNume.Text, null);
また:
bool success = FilmsAccess.CreateFilmTest(newNume.Text, DateTime.Now.ToString());
どちらの場合も、ExecuteNonQueryは実行されません。