gpt4 book ai didi

C# if 语句与 dropdownlist.selectedvalue

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:59 27 4
gpt4 key购买 nike

所以我正在连接一个sql数据库。我有一个 asp.net 页面,当用户选择状态下拉列表并选择已关闭的值,然后单击更新票证按钮时,我需要它来更新表中的 Closed_date 列。

我的表有列 Closed_Date 类型的日期时间。我有一个存储过程,可以根据工单编号更新该列。

这是我遇到问题的地方:

        con = new SqlConnection(_strConStr);
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "iz_sp_updateticket";
cmd.Parameters.Add(new SqlParameter("@Priority", SqlDbType.Int)).Value = ddlPriority.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Environment", SqlDbType.VarChar, 50)).Value = ddlEnv.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Info", SqlDbType.VarChar)).Value = txtMessage.Text;
cmd.Parameters.Add(new SqlParameter("@Ticket", SqlDbType.Int)).Value = txtTicket.Text;
if (ddlStatus.SelectedValue == "Closed")
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value = System.DateTime.Now;
}
else
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value = ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value = DBNull.Value;
}

con.Open();
cmd.ExecuteNonQuery();

这是我的存储过程:

CREATE procedure [dbo].[iz_sp_updateticket]
@Ticket int,
@Priority varchar(50),
@Status varchar(50),
@Environment varchar(50),
@Info varchar(max),
@Closed_date datetime
as
UPDATE stotickets
SET
Priority = @Priority,
[Status] = @Status,
Environment = @Environment,
Info = @Info,
Closed_date = @Closed_date
WHERE Ticket = @Ticket

错误

Procedure or function iz_sp_updateticket has too many arguments specified. 

最佳答案

在不了解更多问题的情况下可能发生的两件事:

  1. 您想使用 System.DateTime.Now,而不是 System.DateTime.Now.ToString(),因为参数是 DateTime 数据类型。
  2. 您不能直接将null 传递给数据库服务器,如果您想要null,则需要使用DBNull.Value。<

代码看起来像这样:

if (ddlStatus.SelectedValue == "Closed")
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value =
ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value =
System.DateTime.Now;
}
else
{
cmd.Parameters.Add(new SqlParameter("@Status", SqlDbType.VarChar, 50)).Value =
ddlStatus.SelectedValue;
cmd.Parameters.Add(new SqlParameter("@Closed_Date", SqlDbType.DateTime)).Value =
DBNull.Value;
}

关于C# if 语句与 dropdownlist.selectedvalue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3391683/

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