//程序内容
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;//SendMail为一个发送邮件的基类
class SendMail
{
// private string UserId;
// private string Buyer;
// private string Seller;
//注册后发送E-Mail
public void RegMail(string To ,string Subject ,string Body)
{ string mailAddr ;
string strConn = " "; //连接数据库代码
SqlConnection myConn = new SqlConnection(strConn);
SqlCommand com = myConn.CreateCommand();
com.CommandType = CommandType.Text;
com.CommandText ="select mail from userinfo where userid = '"+To+"'";
myConn.Open();
mailAddr = com.ExecuteScalar.ToString(); //问题就在ExecuteScalar这里,我想要把查询 //的结果赋给mailAddr
myConn.Close();
MailMessage message = new MailMessage("[email protected]", mailAddr , Subject, Body);
SmtpClient client = new SmtpClient();
client.Host = "smtp.126.com";
client.Port = 25;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("x", "密码");
try
{
client.Send(message);
Console.WriteLine("发送完毕");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}class Test
{ static void Main()
{
SendMail send = new SendMail();
send.RegMail("12","registry","你好!"); //12为用户id
}
}
//运行结果:< error CS0119 "System.Data.Common.DbCommand.ExecuteScalar()"是一个“方法”,在给定的上下文中无效>请大家指出这个问题,关键是如何把从表中查到的数据赋给一个参数,并且把这个参数传给MailMessage()函数,到底是哪里出问题了,请各位不吝赐教...
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;//SendMail为一个发送邮件的基类
class SendMail
{
// private string UserId;
// private string Buyer;
// private string Seller;
//注册后发送E-Mail
public void RegMail(string To ,string Subject ,string Body)
{ string mailAddr ;
string strConn = " "; //连接数据库代码
SqlConnection myConn = new SqlConnection(strConn);
SqlCommand com = myConn.CreateCommand();
com.CommandType = CommandType.Text;
com.CommandText ="select mail from userinfo where userid = '"+To+"'";
myConn.Open();
mailAddr = com.ExecuteScalar.ToString(); //问题就在ExecuteScalar这里,我想要把查询 //的结果赋给mailAddr
myConn.Close();
MailMessage message = new MailMessage("[email protected]", mailAddr , Subject, Body);
SmtpClient client = new SmtpClient();
client.Host = "smtp.126.com";
client.Port = 25;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("x", "密码");
try
{
client.Send(message);
Console.WriteLine("发送完毕");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}class Test
{ static void Main()
{
SendMail send = new SendMail();
send.RegMail("12","registry","你好!"); //12为用户id
}
}
//运行结果:< error CS0119 "System.Data.Common.DbCommand.ExecuteScalar()"是一个“方法”,在给定的上下文中无效>请大家指出这个问题,关键是如何把从表中查到的数据赋给一个参数,并且把这个参数传给MailMessage()函数,到底是哪里出问题了,请各位不吝赐教...
mailAddr是字符串,那是不是应该强制转换一下。
mailAddr = convert(string) com.ExecuteScalar.ToString(); 具体怎么用我也忘了。你查查help。
Good luck
com.ExecuteScalar().ToString();
就可以了你用方法的时候忘了C#中所有的方法调用后面都要加上()