1

我正在测试我对 ADO.NET 和 SQL 的了解,目前正在尝试做基础知识。我想从表中读取,当用户单击按钮时,会弹出一个消息框,其中包含 ApplicationName 列中的值。

当我单击按钮时,它目前没有做任何事情......有什么想法吗?

protected void TestSubmit_ServerClick(对象发送者,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);
    }
4

3 回答 3

2

你基本上只是发送“window.alert('your message');” 作为浏览器的 HTML,它不会作为 JavaScript 执行。你真的希望它成为一个“弹出窗口”吗?如果是这样,请考虑使用 RegisterStartupScript() 而不是通过标签 ( http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx ) 输出 JS。如果不是,那么为什么不将标签的内容设置为您的返回消息?

于 2009-08-13T18:36:08.213 回答
0

示例取自 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>");
于 2009-08-13T18:39:32.027 回答
0

它确实执行。我在其他代码中使用它,并且该消息框功能在其他项目上运行良好。

这是我真正想做的事情:

尝试
        {
            // 设置我们的命令。
            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 不会显示文本。

于 2009-08-13T18:45:33.853 回答