簡體   English   中英

參數化查詢'((@Educator_ID nvarchar(4000),@ Subject_ID…')期望參數'@Educator_ID',但未提供

[英]The parameterized query '(@Educator_ID nvarchar(4000),@Subject_ID …' expects the parameter '@Educator_ID', which was not supplied

WCF代碼

public class Service1 : IService1
{

    public string AdminAssign(AssignEducator edInfo)
    {
        string text = "";
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|NoBrainerDB.mdf;Integrated Security=True");
        con.Open();
        SqlCommand command = new SqlCommand("insert into [EdSubject] (Educator_ID,Subject_ID,ES_Grade,ES_Subject ) values (@Educator_ID,@Subject_ID,@ES_Grade,@ES_Subject);", con);
        command.Parameters.AddWithValue("@Educator_ID", edInfo.Educator_ID);
        command.Parameters.AddWithValue("@Subject_ID", edInfo.Subject_ID);
        command.Parameters.AddWithValue("@ES_Grade", edInfo.ES_Grade);
        command.Parameters.AddWithValue("@ES_Subject", edInfo.ES_Subject);
        int result = command.ExecuteNonQuery();

        if (result == 1)
        {
            text = "User is registered ";
        }
        else
        {
            text = "User is not registered";
        }
        con.Close();
        return text;
    }
}

C#代碼

public partial class AdminAssignEducator : System.Web.UI.Page
{
    ServiceReference1.Service1Client objServiceClientobjService = new ServiceReference1.Service1Client();
    protected void Page_Load(object sender, EventArgs e)
    {

        AssignEducator assignEd = new AssignEducator();
        assignEd.ES_Grade = Grade.SelectedValue;
        assignEd.ES_Subject = Subject.SelectedValue;
        assignEd.Subject_ID = Request.QueryString["Subject_ID"];
        assignEd.Educator_ID = Request.QueryString["Educator_ID"];
        string result = objServiceClientobjService.AdminAssign(assignEd);
        Response.Redirect("AdminAssignEducator.aspx");
    }
}

這通常是null的問題。 如果Educator_ID是可以為null的類型( stringint?等),那么您將需要使用:

command.Parameters.AddWithValue("@Educator_ID",
    (object)edInfo.Educator_ID ?? DBNull.Value);

或其他一些將null替換為DBNull代碼。 基本上, 不會發送 .Valuenull輸入參數。 或者,僅使用為您執行此操作的框架。 大多數ORM和微型ORM都會自動獲得此權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM