当应用程序不在UserInteractive模式下运行时显示模态对话框或窗体是无效的操作
本文关键字:窗体 对话框 无效 操作 模态 显示 应用程序 UserInteractive 模式 运行时 | 更新日期: 2023-09-27 18:14:21
当我想在远程服务器上读取。xlsx excel文件时,我遇到了这个错误,但奇怪的是,在我的本地机器上没有。我试过将我的代码从MessageBox.Show(mymessage)更改为
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert(' ' + mymessage+ ' ');", true);
然后我意识到,即使我注释掉所有的显示消息msgbox/alert,我仍然会面临同样的错误。
Source Error:当前web请求执行过程中产生未处理的异常。有关异常的来源和位置的信息可以使用下面的异常堆栈跟踪来识别。
堆栈跟踪当应用程序不在UserInteractive模式下运行时显示模态对话框或窗体是无效的操作。指定ServiceNotification或DefaultDesktopOnly样式来显示来自服务应用程序的通知。System.Windows.Forms.MessageBox。ShowCore(IWin32Window所有者,字符串文本,字符串标题,MessageBoxButtons按钮,MessageBoxIcon图标,MessageBoxDefaultButton defaultButton, MessageBoxOptions选项,Boolean showHelp) +2661826System.Windows.Forms.MessageBox。显示(字符串文本,字符串标题,MessageBoxButtons按钮,MessageBoxIcon图标,MessageBoxDefaultButton defaultButton) +25NetWorkInformationSystem.classes.ReadExcelFile。GetDataFromExcelPatchRecordRead(字符串文件名)在C:'Documents and Settings'yeohs'Desktop' NetWorkInformationSystem'NetWorkInformationSystem'classes'ReadExcelFile.cs:62NetWorkInformationSystem.PatchRecords。ConfirmBtn_Click(对象发送者,EventArgs e)在C:'Documents and Settings'yeohs'Desktop' NetWorkInformationSystem'NetWorkInformationSystem'forms'PatchRecords.aspx.cs:121System.Web.UI.WebControls.Button。OnClick(EventArgs e) +111System.Web.UI.WebControls.Button。RaisePostBackEvent(String eventArgument) +110System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler。RaisePostBackEvent(String eventArgument) +10System.Web.UI.Page。(ipostbackeventandler的sourceControl, String eventArgument) +13System.Web.UI.Page。RaisePostBackEvent(NameValueCollection postData) +36System.Web.UI.Page。ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
listofTableTable = ReadExcelFile.GetDataFromExcelPatchRecordRead(filename);
listofDataSet = ReadListOfDataFromExcelPatchRecord(listofTableTable);
if (listofDataSet.Count >= 1)
{
//insert according by filename
int deletecount = GICdatabase.InsertRecords(listofDataSet);
}
foreach (DataRow dr in listofTableTable.Rows)
{
string a= dr["a"].ToString().ToUpper().Trim();
string b= dr["b"].ToString().ToUpper().Trim();
string c= dr["c"].ToString().ToUpper().Trim();
string d= dr["d"].ToString().ToUpper().Trim();
string e= dr["e"].ToString().Trim();
string f= dr["f"].ToString().ToUpper().Trim();
string g= dr["g"].ToString().ToLower().Trim();
string h= dr["h"].ToString().ToLower().Trim();
string i= dr["i"].ToString().ToLower().Trim();
string j= dr["j"].ToString().ToLower().Trim();
DateTime datestamp =DateTime.Now.ToLocalTime();
}
* * * *嘿优点! !任何伟大的解决方案,以显示服务器上的选项消息框提供吗?如好,取消吗?是的,不是吗?
总结一下,
嘿,是的!法律编辑。你认为原因是什么?
一个问题可能是您试图在web中使用MessageBox.Show()代码。这是win-forms显示消息的方式,不能这样做
但是应该被读取的数据没有被添加到数据库中!会是什么呢?导致现在?
这个你需要调试,看看GICdatabase.InsertRecords(listofDataSet);
注意:看起来你正在以错误的方式(win-forms策略)实现web应用程序,这是不正确的。我建议您阅读一些asp.net文章,并首先了解它们的基本区别。