好吧,我对编码很陌生,我有一个学校项目,其中一个要求是能够搜索数据库并在表格中显示结果,所以这是我为此编写的代码:
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;
}
基本上,在我按下提交后,会出现一个似乎是空白的表格 - 屏幕上有一条大黑线,就好像它是没有信息的表格的边框一样。 有什么帮助吗?
最佳答案
好的,因为您正在学习,所以我应该在为您解决问题之前告诉您这一点。
每当您想像代码一样在服务器端工作时,使用服务器控件比 html 控件更容易,但是 html 控件更轻,但有时在服务器端编码上使用它们会很棘手。所以替代方案正在使用 <asp:Button
而不是<input type="submit"
和<asp:TextBox
而不是<input type="text"
.
无论如何,让我们回到该代码的问题,正如我所说,在代码后面使用 HTML 元素有点棘手,您必须非常小心 HTML 元素的属性。
所以您的代码问题是缺少 name 属性,所以它应该是这样的;
<input type="text" id="userName" name="userName" value="" />
那么你可以在后面的代码中得到这样的值:
string user = Request.Form["userName"].ToString();
现在您的查询将从数据库中获得正确的结果。 如果您还有任何其他问题,请告诉我。
关于c# - 从数据库表中查找数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151249/