从数据库表中搜索数据

时间:2014-06-10 21:36:16

标签: c# mysql asp.net

好吧所以我对编码很新,我得到了一个学校项目,其中一个要求是能够搜索数据库并在表中显示结果,所以这是我为此写的代码:

aspx页面:

<form id="userSearchForm" method="post" action="#">
    <input type="text" id="userName" value="" />
    <input class="button" id="submit" name="submit" type="submit" value="Submit" />
</form>
<%=st %>

aspx.cs页面:

public partial class Default2 : System.Web.UI.Page
{
    public string st=null;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Form["submit"] != null)
        {
            string user = Request.Form["userName"];
            st = MyAdoHelper.printDataTable("Database.mdf", "select * from members where   name = '" +    user + "'");
        }
    }
}    

和我在上面的aspx.cs页面中调用的不同c#页面中使用的代码:

public static DataTable ExecuteDataTable(string fileName, string sql)
{
    SqlConnection conn = ConnectToDb(fileName);
    conn.Open();
    SqlDataAdapter tableAdapter = new SqlDataAdapter(sql,conn);
    DataTable dt = new DataTable();
    tableAdapter.Fill(dt);
    return dt;
}

public static string printDataTable(string fileName, string sql)
{
    DataTable dt = ExecuteDataTable(fileName, sql);

    string printStr = "<table border='1'>";

    foreach (DataRow row in dt.Rows)
    {
        printStr += "<tr>";
        foreach (object myItemArray in row.ItemArray)
        {
            printStr += "<td>" + myItemArray.ToString() +"</td>";
        }
        printStr += "</tr>";
    }
    printStr += "</table>";

    return printStr;
}

基本上在我按下提交之后,似乎是一张空白表格出现了 - 屏幕上有一条黑色大线,好像它是一张没有信息的桌子边框。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

好的,因为你正在学习我应该在我想为你解决问题之前告诉你。

每当你想像服务器那样在服务器端工作时,使用服务器控件而不是html控件更容易,但是html控件更轻,但有时在服务器端编码时使用它们很棘手。所以替代方案是使用<asp:Button代替<input type="submit"<asp:TextBox代替<input type="text"

无论如何回过头来解决你的代码问题,因为我说在代码中使用HTML元素有点棘手,你必须非常小心HTML元素的属性。

因此,您的代码上的问题是缺少名称属性,因此它应该是这样的;

 <input type="text" id="userName" name="userName" value="" />

然后你可以在后面的代码中得到这样的值:

 string user = Request.Form["userName"].ToString();

现在您的查询将从您的数据库中获得正确的结果。 如果你有任何进一步的问题,请告诉我。