gpt4 book ai didi

c# - int 与 datetime2 不兼容

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:56 25 4
gpt4 key购买 nike

当我的存储过程用于我的 asp web 表单时,我试图让它获取当前时间和日期。信息将存储在数据类型为 datetime2 的列中。填写我的表格时,我得到了这个..

操作数类型冲突:int 与 datetime2 不兼容

command.Parameters.AddWithValue("@dt2LastLoginDate", SqlDbType.DateTime2);

应该使用什么来将日期和时间存储为正确的数据类型?

protected void Submit_Click(object sender, EventArgs e)
{
try
{

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegDNMembershipConnectionString"].ConnectionString);
con.Open();
SqlCommand command = new SqlCommand("dbo.P_AddAccount");
command.Connection = con;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@nvcAccountName", TextBoxUN.Text));
command.Parameters.Add(new SqlParameter("@inyAccountLevelCode", 100));
command.Parameters.Add(new SqlParameter("inyCharacterCreateLimit", 4));
command.Parameters.Add(new SqlParameter("@inyCharacterMaxCount", 4));
var param = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
param.Value = DateTime.Now;
command.Parameters.Add(param);
var wrongParam = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
wrongParam.Value = System.Data.SqlDbType.DateTime2;
command.Parameters.Add(new SqlParameter("@vchLastLoginIP", null));
command.Parameters.Add(new SqlParameter("@@IntLastSessionID", null));
command.Parameters.Add(new SqlParameter("@vchJoinIP", null));
command.Parameters.Add(new SqlParameter("@inyPublisherCode", 4));
command.Parameters.Add(new SqlParameter("@inyGenderCode", null));
command.Parameters.Add(new SqlParameter("@DaTBirthDate", null));
command.Parameters.Add(new SqlParameter("@vchPassphrase", TextBoxPass.Text));
command.Parameters.Add(new SqlParameter("@inyNationalityCode", null));
command.Parameters.Add(new SqlParameter("@inyChannelPartnerCode", null));
command.Parameters.Add(new SqlParameter("@EmailAddress", TextBoxEA.Text));
command.Parameters.Add(new SqlParameter("@FullName", TextBoxFN.Text));
command.Parameters.Add(new SqlParameter("@Country", DropDownListCountry.SelectedValue));
command.ExecuteNonQuery();
con.Close();


}

最佳答案

SqlDBType.DataTime2 ( MSDN reference ) 是一个 Enum,它将被转换为一个 int(值 33) 执行参数时。您需要向集合提供您希望在执行时设置为参数的实际 DateTime 值。一个示例是:

var param = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
param.Value = System.DateTime.Now;
command.Parameters.Add(param);

这将创建一个具有参数名称和数据类型的新参数。接下来,我们将参数的值设置为 DateTime.Now 或您选择的日期值。最后将其添加到参数集合中。

现在在您的示例中,Parameters.AddWithValue() 方法接受两个参数。参数的名称(即 @dt2LastLoginDate)和在执行期间将参数设置为的值。因此你可以改写这个语句可以改写为:

var wrongParam = new SqlParameter("@dt2LastLoginDate", System.Data.SqlDbType.DateTime2);
wrongParam.Value = System.Data.SqlDbType.DateTime2;

如您所见,将值设置为 SqlDbType.DateTime2 的枚举值

关于c# - int 与 datetime2 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com