0
SQLテーブルから選択したデータを取得して電子メール本文に追加する便利なコードを用意しました。それは(スタックオーバーフローの天才の助けを借りて)複数のレコードを返し、それらを電子メールのボディに非常にうまくグループ化します。問題は電子メールフィールドです。もちろん、それはFor eachループ内にあり、そのレコードの複数のインスタンスを返します。これらのインスタンスは、電子メールのToフィールドに書き込まれます。このレコードは常に同じで、変数(eml)に1つのインスタンスしか書き込まれません。私はこれが簡単だろうと推測していますが、私はもう一度クエリを実行することができません。SqlDataAdapterコードから単一の文字列変数を取得する方法
string str = @"Data Source=srvr;Initial Catalog=db;Integrated
Security=True";
SqlConnection scn;
SqlDataAdapter da;
DataSet ds;
salesOrdersTableAdapter.SO(_TST_TWIDataSet.SalesOrders);
scn = new SqlConnection(str);
da = new SqlDataAdapter("SELECT DISTINCT DATEADD (dd, DATEDIFF(dd,0,ShipDate),0) AS ShipDate,RTRIM(SalesOrder) AS [Sales Order], RTRIM(PartNum) AS [Part Number]," +
"RTRIM(Description) AS Description,RTRIM(DueQty) AS Quantity,RTRIM(CustPartNum) AS[Customer Part No], RTRIM(CustPo) AS[Customer PO], " +
"RTRIM(CustRev) AS[Customer Rev], RTRIM(email) AS [Email] " +
"FROM tbl WHERE Ack <> 'Y'AND SalesOrder =" + MyGlobals.ord, scn);
ds = new DataSet();da.Fill(ds, "SalesOrders");
var orderListBody = new StringBuilder();
var sbj = string.Empty;
foreach (DataRow Row in ds.Tables["SalesOrders"].Rows)
{
orderListBody.Append("Order Number " + Row["Sales Order"] + "<br />");
orderListBody.Append("Part Number: " + Row["Part Number"] + "<br />");
orderListBody.Append("Description: " + Row["Description"] + "<br />");
orderListBody.Append("Customer Part Number: " + Row["Customer Part No"] + "<br />");
orderListBody.Append("Customer Revision: " + Row["Customer Rev"] + "<br />");
DateTime dte = DateTime.Now;
orderListBody.Append("Expected Ship Date: " + dte.ToShortDateString() + "<br />");
orderListBody.Append("Quantity: " + Row["Quantity"] + "<br />");
orderListBody.Append("<br />");
// eml += Row["Email"];
sbj = "Order Acknowledgement for your PO " + Row["Customer PO"];
}
事前
は '+'を削除します。 'EML =ロウ[ "電子メール"];'? –
申し訳ありません - コメントが分かりません。私はその声明を述べましたが、電子メールのTo:フィールドの変数が必要です –
はい、この 'Email'の結果の列はすべての行で同じと言いました。したがって、常に' eml'を '[Row [ Email "]' 'foreach'の後に、最後の行の' Email'値は 'eml'にあり、' To: 'フィールドに使うことができます。あなたの現在のコード( '/'を除く)では、各行の電子メールを 'eml'に追加します。 –