好吧所以我对编码很新,我得到了一个学校项目,其中一个要求是能够搜索数据库并在表中显示结果,所以这是我为此写的代码:
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;
}
基本上在我按下提交之后,似乎是一张空白表格出现了 - 屏幕上有一条黑色大线,好像它是一张没有信息的桌子边框。 有什么帮助吗?
答案 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();
现在您的查询将从您的数据库中获得正确的结果。 如果你有任何进一步的问题,请告诉我。