没有弹出窗口和错误源是 rdr=cmd.executereader();
Posted
技术标签:
【中文标题】没有弹出窗口和错误源是 rdr=cmd.executereader();【英文标题】:No popups and error source is rdr=cmd.executereader(); 【发布时间】:2014-01-26 17:07:57 【问题描述】:这是 OrderDetails 页面,在购物车成功购买后将被带到此页面。 1) 当我让代码运行时,javascript 弹出窗口没有像我的其他页面那样弹出。 2) rdr=cmd.executereader() 是导致错误页面的错误 3) SELECT * OrdersView 是另一个错误。 [我编辑为 SELECT * FROM ordersView] * 新错误 * 4)所有这些代码不再给我任何错误。但是没有弹出窗口,也没有电子邮件发送到该帐户。
我对这个错误的看法:一些分析。我尝试了字符串 StrFirstName 部分 alacartely 和 session["sfirstname"] alacartely 都导致相同的错误。所以我把这两个摘录都贴出来给你看。
我在 c# 中并不是那么好,但我相信这是因为我使用 * 而不是 FROM 检索了数据库,并且还导致我没有正确检索我需要的部分(逻辑错误,我想)任何人都可以在这个问题上指导我?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Net.Mail;
public partial class OrderDetails : System.Web.UI.Page
static readonly string scriptSuccessPaymentSuccessful =
"<script language=\"javascript\">\n" +
"alert (\"Your payment is successful!- Thank you!\");\n" +
"</script>";
protected void Page_Load(object sender, EventArgs e)
OleDbConnection mDB = new OleDbConnection();
mDB.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/webBase.accdb");
mDB.Open();
Type csType = this.GetType();
OleDbCommand cmd;
OleDbDataReader rdr;
string SQLRetrieve = "SELECT * FROM ordersView";
cmd = new OleDbCommand(SQLRetrieve, mDB);
rdr = cmd.ExecuteReader();
while (rdr.Read() == true)
string strFirstName = rdr["CFirstName"].ToString();
string strLastName = rdr["CLastName"].ToString();
string strEmail = rdr["CEmail"].ToString();
string strOrderNo = rdr["oOrderNo"].ToString();
string strStatus = rdr["oStatus"].ToString();
string strPaymentMode = rdr["oPaymentMode"].ToString();
string strPrice = rdr["SumOfuUnitPrice"].ToString();
if ((string)Session["sFlag"] != "T")
ClientScript.RegisterStartupScript(csType, "Success", scriptSuccessPaymentSuccessful);
//
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("kayzelmoo@gmail.com");
mailMessage.To.Add(strEmail);
mailMessage.Subject = "DreamJagers - Successful transaction";
mailMessage.Body = "<b>Dear : </b>" + strFirstName + " " + strLastName + "," + "<br/>"
+ "<b>Order No : </b>" + strOrderNo + "<br/>"
+ "<b>Payment Mode: </b>" + "You have paid with " + strPaymentMode + "<br/>"
+ "<b>Amount Paid: </b>" + "$SGD" + strPrice + "<br/>"
+ "<b>Message : </b>" + "DreamJagers thank you for making the purchase with us, you can present this E-mail to any of us as a proof of receipt purchase";
mailMessage.IsBodyhtml = true;
SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587);
smtpClient.EnableSsl = true;
smtpClient.Credentials = new System.Net.NetworkCredential("kayzelmoo@gmail.com", "xxxxxxxxx");
smtpClient.Send(mailMessage);
else
【问题讨论】:
【参考方案1】:开始吧
SELECT * ordersView
应该是
SELECT * FROM ordersView
您的代码不会向 rdr 返回任何内容,因为语法错误。
这很可能是问题所在,但如果这不是答案,您并没有向我们提供我们需要的实际错误。
【讨论】:
wingyip 解决了其中一个错误。接下来的几个错误已解决。我坚持。 “System.Data.dll 中发生了 'System.IndexOutOfRangeException' 类型的异常,但未在用户代码中处理其他信息:uUnitPrice” 从数据库中提取的全部信息是: 字符串 strFirstName = rdr["CFirstName"].ToString();字符串 strLastName = rdr["CLastName"].ToString();字符串 strEmail = rdr["CEmail"].ToString();字符串 strOrderNo = rdr["oOrderNo"].ToString();字符串 strStatus = rdr["oStatus"].ToString();字符串 strPaymentMode = rdr["oPaymentMode"].ToString();字符串 strPrice = rdr["uUnitPrice"].ToString();十进制 decPrice = decimal.Parse(strPrice) 如果我是你,我会发布一个新问题。在评论中遵循代码有点困难 没关系哈哈我解决了整个问题。你解决了更重要的问题——我忽略了 FROM 函数以上是关于没有弹出窗口和错误源是 rdr=cmd.executereader();的主要内容,如果未能解决你的问题,请参考以下文章
EditText.setError(“错误文本”)不显示弹出窗口