Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 电子邮件地址不会从c中的存储过程返回#_C#_Asp.net_Stored Procedures - Fatal编程技术网

C# 电子邮件地址不会从c中的存储过程返回#

C# 电子邮件地址不会从c中的存储过程返回#,c#,asp.net,stored-procedures,C#,Asp.net,Stored Procedures,这些值不会从存储过程传递到EmailTO和EmailFrom,其显示为NULL。所以我无法发送电子邮件。如果我在To和From位置手动输入电子邮件地址,则电子邮件将以smtp形式发送,但不会从存储过程读取 请帮助我检索值: 这是我的存储过程,数据存储在表中: Set @EmailFrom =(SELECT EmailFrom FROM tblEmailDesign where EmailID = @EmailID ) Set @EmailTo =(SELECT EmailTo F

这些值不会从存储过程传递到
EmailTO
EmailFrom
,其显示为NULL。所以我无法发送电子邮件。如果我在
To
From
位置手动输入电子邮件地址,则电子邮件将以smtp形式发送,但不会从存储过程读取

请帮助我检索值:

这是我的存储过程,数据存储在表中:

    Set @EmailFrom =(SELECT EmailFrom FROM tblEmailDesign where EmailID = @EmailID )
    Set @EmailTo =(SELECT EmailTo FROM tblEmailDesign where EmailId = @EmailID )

    Insert into tblEmailsend([EmailID][EmailSubject],[EmailTo],[EmailFrom],[EmailBody],[EmailComment])
select @EmailID @EmailFrom,@EmailTo,[EmailSubject],[EmailBody],@EmailComment from tblEmaildesign
where EmailID=@EmailID

END
这是我在C#中的调用代码:


执行存储过程后,需要从存储过程中获取输出参数值:

protected void submit(object sender, EventArgs e)

    using (SqlCommand scom = new SqlCommand("spx_Send_Status_Mail", new SqlConnection(ConfigurationManager.ConnectionStrings["EPOCHSConnectionString"].ConnectionString))) {

        scom.CommandType =CommandType.StoredProcedure;    
        SqlParameter EmailTo = new SqlParameter("@EmailTo", SqlDbType.NVarChar, 200);
        EmailTo.Direction = ParameterDirection.Output;
        scom.Parameters.Add(EmailTo);    
        SqlParameter EmailFrom = new SqlParameter("@EmailFrom", SqlDbType.NVarChar, 200);
        EmailFrom.Direction = ParameterDirection.Output;
        scom.Parameters.Add(EmailFrom);

        try {
            scom.Connection.Open();
            scom.ExecuteNonQuery();
            scom.ExecuteReader(CommandBehavior.CloseConnection);
        } finally {
            scom.Connection.Close();
        }

        mail message = new mail();

        //Get output parameters after executing query
        string to = EmailTo.Value.ToString();
        string from = EmailFrom.Value.ToString();
        //Pass To and From email addresses to the ESendmail function
        mailsystem.Esendmail(to,from);
    }
}

我这样做了,但仍然没有传递值。我们将感谢您提供更多帮助。您可以更具体地说,当您逐步完成代码时,您是否成功地检索了输出值?如果没有,则运行SQL事件探查器并检查返回的值。很难说,因为SQL查询不正确,@EmailId:
select@EmailId@EmailFrom之后缺少一个逗号,@EmailTo
我想在这里格式化代码时,我遗漏了逗号,但在我的存储过程中,我正确地执行了每个查询,我可以看到存储在那里的值。我遇到了以下错误:转换nvarchar值时转换失败'myname@gmail.com'到数据类型int@nitharaj愿意接受吗?这样每个人都知道你的问题问题解决了吗?干杯:
protected void submit(object sender, EventArgs e)

    using (SqlCommand scom = new SqlCommand("spx_Send_Status_Mail", new SqlConnection(ConfigurationManager.ConnectionStrings["EPOCHSConnectionString"].ConnectionString))) {

        scom.CommandType =CommandType.StoredProcedure;    
        SqlParameter EmailTo = new SqlParameter("@EmailTo", SqlDbType.NVarChar, 200);
        EmailTo.Direction = ParameterDirection.Output;
        scom.Parameters.Add(EmailTo);    
        SqlParameter EmailFrom = new SqlParameter("@EmailFrom", SqlDbType.NVarChar, 200);
        EmailFrom.Direction = ParameterDirection.Output;
        scom.Parameters.Add(EmailFrom);

        try {
            scom.Connection.Open();
            scom.ExecuteNonQuery();
            scom.ExecuteReader(CommandBehavior.CloseConnection);
        } finally {
            scom.Connection.Close();
        }

        mail message = new mail();

        //Get output parameters after executing query
        string to = EmailTo.Value.ToString();
        string from = EmailFrom.Value.ToString();
        //Pass To and From email addresses to the ESendmail function
        mailsystem.Esendmail(to,from);
    }
}