0
我得到我想用下面的代碼的結果。 但我的問題是我做對了嗎? 請張貼一些修改,如果需要修改 我在C#中的新嘗試學習如何從UI層的數據傳送到數據層填充下拉列表,並使用CheckBoxList的用戶界面層和數據層的最佳實踐asp.net C#
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddList" runat="server"></asp:DropDownList>
<asp:CheckBoxList ID="cbList" runat="server"></asp:CheckBoxList>
</div>
</form>
</body>
</html>
using System.Data.SqlClient;
using System.Data;
namespace test2
{
public class Data
{
string connection = "Data Source=Test\\SQLEXPRESS; Initial Catalog = RegistrationDB;Integrated Security=SSPI";
SqlConnection conn = new SqlConnection();
public Data()
{
conn.ConnectionString = connection;
}
public SqlConnection getConnection()
{
return conn;
}
public DataTable LoadCountry()
{
DataTable dtable = new DataTable();
string select = "SELECT ID,country FROM dbo.Country";
using (SqlConnection conn = new SqlConnection(connection))
{
SqlDataAdapter adapter = new SqlDataAdapter(select, conn);
adapter.Fill(dtable);
return dtable;
}
}
public DataTable LoadChkboxList()
{
DataTable position = new DataTable();
using (SqlConnection conn = new SqlConnection(connection))
{
string select = "SELECT ID,chkPosition FROM dbo.checkPosition";
SqlDataAdapter adapter = new SqlDataAdapter(select, conn);
adapter.Fill(position);
return position;
}
}
}
}
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace test2
{
public partial class UI : System.Web.UI.Page
{
Data datalayer = new Data();
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ddList.DataSource = datalayer.LoadCountry();
ddList.DataTextField = "country";
ddList.DataValueField = "ID";
ddList.DataBind();
cbList.DataSource = datalayer.LoadChkboxList();
cbList.DataTextField = "chkPosition";
cbList.DataValueField = "ID";
cbList.DataBind();
}
}
}
}
非常感謝你的答覆。非常感謝。這是否真的是必要的,或者是一種很好的做法,將查詢作爲我的方法中的參數?因爲如果我將它傳遞給UI層,我還需要添加查詢參數。謝謝 –
如果您使用ADO.Net執行數據庫操作(如您所做的那樣),建議讓一個類調用數據庫操作。存儲過程優先於查詢。不要忘記接受我的答覆作爲答案,如果它幫助你:) – Sami
你的答案幫助我很多。謝啦。這是我在stackoverflow我的第一篇文章,所以我敢打賭,如果我標記任何回答我的問題將被關閉?是的,我會考慮包括存儲過程,以避免SQL注入。但在讓urs作爲答案之前,讓我先查找其他評論。感謝,並有很好的一天,godbless :) –