错误消息是:
抛出了类型'System.Web.HttpUnhandledException'的异常。 友情消息:System.ArgumentException:列'testfile'可以 不属于桌子。在System.Data.DataRow.GetDataColumn(String columnName)at System.Data.DataRow.get_Item(String columnName)at Registration_test.FillImage()in c:\ inetpub \ wwwroot \ testWeb \ Events \ Registration.aspx.cs:第49行at Registration_test.Page_PreInit(Object sender,EventArgs e)in c:\ inetpub \ wwwroot \ testWeb \ test \ Registration.aspx.cs:第39行at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,对象t,EventArgs e)at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)在System.Web.UI.Page.OnPreInit(EventArgs e)at System.Web.UI.Page.PerformPreInit()at System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 目标站点:Boolean HandleError(System.Exception)源:System.Web 错误堆栈跟踪是:在System.Web.UI.Page.HandleError(例外e) 在System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 在System.Web.UI.Page.ProcessRequest(布尔值 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 在System.Web.UI.Page.ProcessRequest()处 System.Web.UI.Page.ProcessRequest(HttpContext context)at ASP.events_registration_aspx.ProcessRequest(HttpContext context)中 c:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ testWeb \ 761ce6e4 \ d915dd85 \ App_Web_posk8hm6.6.cs:第0行at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤, 布尔和放大器; completedSynchronously)
当我在IIS中托管网站时,我收到上述错误作为电子邮件,但是当我在本地或甚至在线检查代码时我不知道它。错误说即使查询返回,testfile列也不属于datable专栏。
任何人都可以帮助原因......
//////////////////////这是我的代码///////////////////// //////////////////////////////
public partial class Registration_Registration : System.Web.UI.Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
FillImage();
}
protected void FillImage()
{
string Query = "select t.header_image_file as 'HeaderImage',t.image,c.testfile from registrars c left join trade t on c.tradeid = t.tradeid and c.mainitemid = t.mainitemid ";
DataTable result = GetDataTable(Query);
if (result != null && result .Rows.Count > 0)
{
if (result .Rows[0]["testfile"] != null)
{
this.Theme = result .Rows[0]["testfile"].ToString().Trim();
this.MasterPageFile = result .Rows[0]["testfile"].ToString().ToLower().Trim() + ".master";
}
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}}
答案 0 :(得分:1)
好的,乍一看,我们发现错误与不在表格中的列有关。
要解决此问题,我建议您首先在管理工作室中运行查询,检查您尝试在ASP.Net页面中访问的列的名称。 如果列名都是正确的备份,则数据将丢弃并重新创建表和访问此表的存储过程,并希望这将解决问题。
在开发过程中不小心更新数据库中的列等,而不是将更改推送到生产数据库。
如果这不解决问题,如果您发布表结构,查询和访问查询的代码,您将能够获得更好的帮助,以便我们可以更有效地诊断问题。
更新: 这些是您在查询中选择的列
strt.header_image_file as 'HeaderImage',
t.image,
c.themefile
然而,在您的代码中,您尝试访问名为testfile的列