DropDownList怎样与数据库中的数据绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DropDownList怎样与数据库中的数据绑定相关的知识,希望对你有一定的参考价值。

参考技术A 第一步:连接数据库
第二步:取得数据/
第三步:为其指定数据源
第四步:指定其text和value值。
第五步:绑定
参考代码:
SqlConnection con3=new SqlConnection("Server=.;user id=sa;password=123456;Database=FABS");
con3.Open();
SqlCommand cmd3=new SqlCommand();
cmd3.CommandText="select * from sheng";
cmd3.CommandType=CommandType.Text;
cmd3.Connection=con3;
SqlDataReader sdr3=cmd3.ExecuteReader();
DropDownList1.DataSource =sdr3;
DropDownList1.DataTextField = "shengming";
DropDownList1.DataBind();
con3.Close();
参考技术B 先获取数据库里的数据,比如用DataSet来存储数据
然后把这个DataSet给DropDownList.DataSource
然后指定text和value的表字段
参考技术C DropDownList任务,选择数据源,连接你的SQL
最后再选择你要绑定的哪个列名~
或者在控件的属性那里,有个数据,里面有dotasourseid 选个数据源,控制跟上面一样
参考技术D 基本上有两种方法

第一种 -------------------------------------------

在页面添加DropDownList 控件

<asp:DropDownList ID="DropDownList1" runat="server" Height="16px" Width="137px">
</asp:DropDownList>

在设计视图下选择该控件的智能标记,选择选择数据源,你只需要根据实际依次选择数据库,表,以及要绑定到该控件的值列和名称列即可

第二种 --------------------------------------------

程序方法添加之 一 界面已存在控件
<asp:DropDownList ID=" drList " runat="server" Height="16px" Width="137px">
</asp:DropDownList>

程序方法添加之 二 需要想界面动态添加控件
DropDownList drList = New DropDownList();

以上两种方法使用的数据绑定,均可用一下代码来实现
1,连接数据需并将要绑定的数据列查询返回到DataTable
2,用For 或者 foreach 循环遍历当前DataTable要与drList绑定的数据列,使用如下方法绑定
以下是示例:

DataTable dat = new DataTable();
DropDownList drList = new DropDownList();

int Bang_Value = 0;//指定要绑定的值列
int Bang_Text = 1;//指定要绑定的名称列

for (int i = 0; i < dat.Rows.Count; i++)

drList.Items.Add(dat.Rows[i][Bang_Text].ToString());
drList.Items[i].Value = dat.Rows[i][Bang_Value].ToString();


在设计视图下选择该控件的智能标记,选择选择数据源,你只需要根据实际依次选择数据库,表,以及要绑定到该控件的值列和名称列即可

如何在不使用ViewData的情况下将对象属性绑定到DropDownList中的数据源

我的kendo Grid中有一个DropDownList列。我想将DataSource中的ViewData [“genres”]更改为GenreViewModel属性“AllGenres”。我怎样才能做到这一点?不要忘记我使用js版本的Grid(不是mvc)。

我认为应该看起来像:

dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize("AllGenres"))

要么

dataSource: "AllGenres"

反对:

dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewData["genres"]))

我的DropDownList:

function genreDropDownEditor(container, options) {
    $('<input required name="' + options.field + '"/>')
        .appendTo(container)
        .kendoDropDownList({
            autoBind: false,
            dataTextField: "GenreName",
            dataValueField: "GenreId",
            dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewData["genres"]))               
});
<script type="text/kendo" id="genresTemplate">
    #if(data.Genre != null)
    { #

    #: Genre.GenreName #

    # } #

我的GenreViewModel:

public class GenreViewModel
{
    public int GenreId { get; set; }
    public string GenreName { get { return Enum.GetName(typeof(Genre), GenreId); } }

    public static List<GenreViewModel> AllGenres
    {
        get
        {
            return Enum.GetValues(typeof(Genre)).Cast<Genre>().Select(v => new GenreViewModel
            {
                GenreId = ((int)v)
            }).ToList();
        }
    }
}
答案

Stephen Muecke在评论中给出了答案。(不知道如何正确选择他的评论)

dataSource: @Html.Raw(Json.Encode(Model.AllGenres)).

但我没有在我的视图中声明模型,所以我使用了我的静态属性:

dataSource: @Html.Raw(Json.Encode(Number2.Models.GenreViewModel.GetAllGenres))

以上是关于DropDownList怎样与数据库中的数据绑定的主要内容,如果未能解决你的问题,请参考以下文章

数据绑定 DropDownList

如何在不使用ViewData的情况下将对象属性绑定到DropDownList中的数据源

Repeater中 DropDownList如何绑定数据

步步为营-94-GridView中的DropDownlist值得获取与绑定

怎样将LIST中的数据绑定到GridView,并实现增删改查

数据绑定 DropDownList 与来自 Ms access 2013 的 OleDbDataReader