【发布时间】:2021-04-10 11:43:16
【问题描述】:
public void SearchAccount(int accountno,out DateTime dateofopening)
{
conn = ConnectionEstablisher.getconnection();
conn.Open();
cmd = new SqlCommand("account_search", conn);//account_search - stored procedure name
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@accountno", accountno);//searching account no in table
cmd.Parameters.Add(new SqlParameter("@dateofopening",SqlDbType.DateTime));
cmd.Parameters["@dateofopening"].Direction = ParameterDirection.Output;
object v = cmd.Parameters[parameterName: dateofopening];
dateofopening = (datetime)v;
return;
}
create proc [dbo].[account_search] //stored procedure in ssms
@accountno int,
@dateofopening datetime output
as
begin
select
@dateofopening = DateOfOpening
from Accounts
where AccountNo=@accountno
end
错误:未处理的异常:System.InvalidCastException:指定的转换无效。 在 C:\Users\RAHUL\source\repos\ConsoleApp7\AccountOperations.cs:line 94 中的 ConsoleApp7.AccountOperations.SearchAccount(DateTime& dateofopening) 处
【问题讨论】:
-
在开始处理输出之前,您在哪里执行命令?我看到您打开了一个连接,并设置了一些参数,但是 SQL Server 什么时候会看到该命令?也请不要使用
AddWithValue():blogs.msmvps.com/jcoehoorn/blog/2014/05/12/… -
错误:未处理的异常:System.InvalidCastException:无法将“System.Data.SqlClient.SqlParameter”类型的对象转换为“System.IConvertible”类型。在 System.Convert.ToInt32(对象值)
-
DBNull.Value 不是日期时间。检查
v == DBNull.Value
标签: c# sql-server visual-studio ssms