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);
}
}