验证记录是否发送到多个表

本文关键字:记录 是否 验证 | 更新日期: 2023-09-27 18:19:13

我希望我还有一个简单的问题要问外面的人。我目前在一个网站上工作,在那里我有一个用户发布信息到服务器,并在发布后,他们被带到一个验证页面,告诉他们是否成功地存储在。mbd表上。我对单个表这样做没有问题,但当我想要验证存储在多个表上的信息时,我似乎遇到了一个问题。

这是我使用的代码,这是工作的发布到一个单一的表

 protected void Page_Load(object sender, EventArgs e)
{
  txtVerifiedInfo.Text =   Session["txtUserFirstName"].ToString() +
    "'n" + Session["txtUserLastName"].ToString() +
    "'n" + Session["txtUserName"].ToString() +
    "'n" + Session["txtUserPassword"].ToString() +

;

    // Check if the record is successfully saved in the tblUserLogin Table and prints the appropriate message in the text box txtVerifiedInfo
    if (clsDataLayer.SavePersonnel(Server.MapPath("App_Data''WSC_DB.mdb"),
    Session["txtUserFirstName"].ToString(),
    Session["txtUserLastName"].ToString(),
    Session["txtUserName"].ToString(),
    Session["txtUserPassword"].ToString(),
                                         ))
    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "'nThe information was successfully saved!";
    }
    else
    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "'nThe information was NOT saved.";
    }
}

}

这是我尝试过的,但没有多少运气

if (clsDataLayer.Saveneworder(Server.MapPath("App_Data''WSC_DB.mdb"),
    Session["txtfirstName"].ToString(),
    Session["txtlastName"].ToString(),
    Session["txtstreetAddress"].ToString(),
    Session["txtcity"].ToString(),
    Session["txtzipCode"].ToString()))

    && if (clsDataLayer.Savenewitem(Server.MapPath("App_Data''WSC_DB.mdb"),
    Session["jobType"].ToString() +
    Session["txtmediaContent"].ToString()))
    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "'nThe Order successfully submitted!";
    }
    else
    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "'n The order did not save, please return to the previous screen and verify all of yourr data is correct, thank you.";
    }
}   

}

我想我做的不是那么正确,但希望在球场。

如果有任何帮助就太好了。感谢您的宝贵时间

验证记录是否发送到多个表

为简化起见,大致如下:

var path = Server.MapPath("App_Data''WSC_DB.mdb");
if (clsDataLayer.Saveorder(path, [order parameters] 
    && clsDataLayer.Saveitem(path, [item parameters])
{
  txtVerifiedInfo.Text = txtVerifiedInfo.Text +
    "'nThe Order successfully submitted!";
}
else
{
  txtVerifiedInfo.Text = txtVerifiedInfo.Text +
    "'n The order did not save, please return to the previous screen and verify all of yourr data is correct, thank you.";
}  

您所提供的代码结构不佳,因为有对Server.MapPath的不必要调用,并且该调用可能更好地放置为数据层类的构造函数的参数的一部分。

您可能没有意识到的是&&是一个快捷操作符——如果参数的第一部分失败,则不会调用参数的第二部分。这是你想要的行为吗?

我怀疑您希望SaveorderSaveitem一起成功或失败,作为一个事务的一部分。在这种情况下,你最好在你的datalayer类中写一个新方法来完成这个任务。

我假设你的文件名中的.mdb表明你正在使用MS Access?我不确定它是否处理事务以及SQL服务器(例如),所以你可能需要编写自己的代码来删除订单,如果它的项目不能保存(或任何你需要的故障行为)。