无法使用 SQL 数据激活消息框 - ASP.NET
Posted
技术标签:
【中文标题】无法使用 SQL 数据激活消息框 - ASP.NET【英文标题】:Can't activate message box with SQL data - ASP.NET 【发布时间】:2009-08-13 18:28:27 【问题描述】:我正在测试我对 ADO.NET 和 SQL 的了解,目前正在尝试做基础知识。我想从表中读取,当用户单击按钮时,会弹出一个消息框,其中包含 ApplicationName 列中的值。
当我点击按钮时,它目前没有做任何事情......有什么想法吗?
protected void TestSubmit_ServerClick(object sender, EventArgs e) // 初始化数据库连接器。 SqlConnection connectSQL = new SqlConnection(); // 发送连接字符串。 connectSQL.ConnectionString = @"数据源 = localhost\SQLEXPRESS;" + “初始目录 = 输入;集成安全 = SSPI”; 尝试 // 设置我们的命令。 SqlCommand theCommand = new SqlCommand("SELECT * FROM Inputs", connectSQL); // 在文本框中写入存储的值。 连接SQL.Open(); SqlDataReader 读取器; theReader = theCommand.ExecuteReader(); theReader.Read(); MessageBox(theReader["ApplicationName"].ToString()); theReader.Close(); 连接SQL.Close(); 捕获(异常 ee) MessageBox("哎呀:" + ee); 私人无效消息框(字符串味精) 标签 lbl = 新标签(); lbl.Text = "" + Environment.NewLine + "window.alert('" + msg + "')"; Page.Controls.Add(lbl);
【问题讨论】:
【参考方案1】:您基本上只是发送“window.alert('your message');”作为浏览器的 html,它不会作为 javascript 执行。你真的希望它成为一个“弹出窗口”吗?如果是这样考虑使用 RegisterStartupScript() 而不是通过标签 (http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx) 输出 JS。如果没有,那么为什么不将标签的内容设置为您的返回消息?
【讨论】:
正确 - 您的实现的问题是您正在传输一段没有 标记的 Javascript 片段。显然这不会执行脚本。在 WinForms 的回发中执行此服务器端的正确方法是使用 RegisterStartupScript 或 RegisterClientScript 注册脚本 DOH!!!它没有复制 【参考方案2】:取自 MSDN 的示例并针对您的示例进行了修改
private void MessageBox(string msg)
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=\"text/javascript\">");
cstext2.Append("window.alert('" + msg + "') </");
cstext2.Append("script>");
ClientScript.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
您也可以使用RegisterStartupScript 代替RegisterClientScriptBlock。
编辑:或者经典的 ASP 方式也应该可以工作。 我在没有任何编辑的情况下写这篇文章。
Response.Write(@"<script language='javascript'>window.alert('" + msg + "');</script>");
【讨论】:
【参考方案3】:它确实执行了。我在其他代码中使用它,并且该消息框功能在其他项目上运行良好。
这是我真正想做的事情:
尝试 // 设置我们的命令。 SqlCommand theCommand = new SqlCommand("SELECT * FROM Inputs", connectSQL); // 在文本框中写入存储的值。 连接SQL.Open(); SqlDataReader 读取器; theReader = theCommand.ExecuteReader(); theReader.Read(); TextBox6.Text = (theReader["ApplicationName"].ToString()); theReader.Close(); 连接SQL.Close(); 捕获(异常 ee) MessageBox("哎呀:" + ee);请注意,TextBox6 是网站上的 ASP 文本框。单击 TestSubmit 不显示文本。
【讨论】:
以上是关于无法使用 SQL 数据激活消息框 - ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 点击一下文件名或者一个下载按钮,将文件下载下来怎么做啊???
org.apache.spark.sql.AnalysisException:给定pyspark中的输入列,无法解析'sub_tot`'