我仅针对字符串参数测试了此方法,并且效果很好。所以我确定在设置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 都不会运行。