asp.net中用datatable给dropdownlist绑定数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net中用datatable给dropdownlist绑定数据相关的知识,希望对你有一定的参考价值。
根据当前登录用户名,在dropdownlist里显示对应的姓名,一个用户名对应多个姓名,所以要显示的是一列,就用了datatable,然后旁边有个按钮,点击之后要给goupiao表插入一行数据
前台:
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
乘车人:<asp:DropDownList ID="DropDownList1" runat="server" Width="298px"> </asp:DropDownList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="预定" />
</asp:Content>
后台:
protected void Page_Load(object sender, EventArgs e, string cmdText)
if (!IsPostBack)
string sqlConStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(sqlConStr); ;
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = cmdText;
string UserName = Session["UserName"].ToString();
DataTable dr = new DataTable("select Name from ChengCheRen where UserName " + UserName);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
sda.Fill(dr);
DropDownList1.DataSource=dr;
DropDownList1.DataTextField = "Name";
DropDownList1.DataValueField = "UserId";
DropDownList1.DataBind();
protected void Button1_Click(object sender, EventArgs e)
string Orderid;
if (Session["UserName"] == null)
Alert.AlertAndRedirect("您还没有登录,请登录后再购买,谢谢合作!", "Default.aspx");
else
sqlconn.Open();
string strid = Page.Request.QueryString["CheCiID"];
string sql1 = "select * from CheCi where CheCiID=" + Request.QueryString["CheCiID"].ToString();
SqlDataReader drhb = data.GetDataReader(sql1);
if (drhb.Read())
string sqlstr = "insert into GouPiao"
+ "(OrderID,OrderMember,CheCiID,CheCiName,CheCiPrice,IsCheckout,shuliang,ZuoWei,ChengCheRen)"
+ " values('" + Orderid + "','" + Session["UserName"].ToString() + "','" + Request.QueryString["CheCiID"].ToString() + "','"
+ drhb["CheCiName"].ToString() + "','" + drhb["CheCiPrice"].ToString() + "','否','1','" + Request.QueryString["BianHao"].ToString()+ "')";
data.RunSql(sqlstr);
data.RunSql("update ZuoWei set ShouChu='是' where id='" + Request.QueryString["id"].ToString() + "'");
Response.Redirect("Shopping.aspx");
我现在能运行....但是dropdownlist没有取到值,然后上面内个inset into的语句该改成啥样,才能把取到的值插入到goupiao表的ChengCheRen中
try
//获取list
List<model> list = new List<model>();
list = ...;
//创建DataTable
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
foreach (var model in list)
DataRow dr = dt.NewRow();
dr["ID"] = model.ID;
dr["Name"] = model.Name;
dt.Rows.Add(dr);
//绑定数据
DropDownList.DataSource = dt;//指定数据追问
内个list=......是啥 原来都不用查询的么....
ASP.NET Datatable 名为“xx"的列已经属于此DataTable的解决方法?
在Page_Load外面,我声明了一个静态的DataTable
public static DataTable dt= new DataTable();
然后在Page_Load的if (!IsPostBack)里面,给这个自定义的DataTable设定了表结构,添加一些列,页面首次载入的时候没问题
但是第二次载入就会报异常:
名为“xxxxx”的列已属于此 DataTable。
这个如果不用ViewState的话,要怎么解决?
谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。
不要写成静态的,写一个方法,专门创建表结构,然后返回DataTable 只在Page_Load外声明DataTable然后将创建出的表结构在if (!IsPostBack)赋值给声明的表结构就可以了,如果想长期保存表结构最好使用GetSet,在Set里面处理表结构,这样最好。追问
谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。
以上是关于asp.net中用datatable给dropdownlist绑定数据的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 如何在网页中用while循环出datatable的数据?
ASP.NET操作DataTable各种方法总结(给Datatable添加行列DataTable选择排序等)
vs2010 asp.net 中,怎么将一个DataTable中的某行数据 复制给另一个DataTable中。
asp.net mvc中Controller如何返回DataTable给页面