C# 从数据库中获取项目列表,该列表在MVC中用逗号分隔每个记录?

C# 从数据库中获取项目列表,该列表在MVC中用逗号分隔每个记录?,c#,mysql,asp.net-mvc,ado.net,C#,Mysql,Asp.net Mvc,Ado.net,要通过列表框(Multiselect)存储到数据库中,请参阅以下链接 在这里,此链接实际上会提醒messagebox列表框中列出的项目 正如上面提到的链接。。。我将水果的数据存储在多个项目的逗号中,如 var items=string.Join(“,”,fruits.FruitsId.ToArray()) 下面的输出是 ID|水果|美孚利诺 1 | 1,5,4 | 9876543210 2 | 2,3,8 | 9876542103 但现在我实际上需要通过ado.net从文本框中输入的基于mob

要通过列表框(Multiselect)存储到数据库中,请参阅以下链接

在这里,此链接实际上会提醒messagebox列表框中列出的项目

正如上面提到的链接。。。我将水果的数据存储在多个项目的逗号中,如
var items=string.Join(“,”,fruits.FruitsId.ToArray())

下面的输出是

ID|水果|美孚利诺
1 | 1,5,4 | 9876543210
2 | 2,3,8 | 9876542103

但现在我实际上需要通过ado.net从文本框中输入的基于mobileno的特定记录的数据库中获取数据,并通过表中的水果列表记录获取数据

这就是我如何使用ado.net将数据插入到水果表中的方法

   public void Addfruits(Fruits bfitems)
   {
            try   
            {
             connection(); 
            var items = string.Join(",", bfitems.FruitsId.ToArray());
            string insertText = "insert into FruitItems(Items,Mobileno) 
                VALUES (@Items,@Mobileno)";
            MySqlCommand command = new MySqlCommand(insertText, con);
            command.Parameters.AddWithValue("@Items", items);
            command.Parameters.AddWithValue("@Mobileno", bfitems.Mobileno);
            if (insertText != null)
            {
                con.Open();
                command.ExecuteNonQuery();
            }

        }
        catch (Exception ex)
        {

        }
        finally
        {
            con.Close();
        }
    }
要获取记录

     private static List<SelectListItem> GetFruits(Fruits bf)
    {
        List<SelectListItem> items = new List<SelectListItem>();
        string constr = 
        ConfigurationManager.ConnectionStrings["orders"].ConnectionString;
        using (MySqlConnection con = new MySqlConnection(constr))
        {
            string query = " SELECT * FROM FruitItems where 
            Mobileno=@Mobileno";
            MySqlCommand cmd = new MySqlCommand(query);
            cmd.Parameters.AddWithValue("@Mobileno", bf.Mobileno);
                cmd.Connection = con;
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();

        }

        return items;
    }
私有静态列表GetFruits(Fruits-bf)
{
列表项=新列表();
字符串结构=
ConfigurationManager.ConnectionString[“订单”]。ConnectionString;
使用(MySqlConnection con=newmysqlconnection(cont))
{
string query=“SELECT*FROM foultitems,其中
Mobileno=@Mobileno”;
MySqlCommand cmd=新的MySqlCommand(查询);
cmd.Parameters.AddWithValue(“@Mobileno”,bf.Mobileno);
cmd.Connection=con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
退货项目;
}

执行查询执行您的查询并返回受查询影响的数字记录(插入/更新了多少行)。如果要从表中获取数据,应使用
ExecuteReader
方法,该方法返回
SqlDataReader

private static List<SelectListItem> GetFruits(Fruits bf)
{
    var items = new List<SelectListItem>();
    string constr = "Your connection string here";
    using (var con = new SqlConnection(constr))
    {
        var query = " SELECT ID, Fruits FROM FruitItems where Mobileno=@Mobileno";
        using (var cmd = new SqlCommand(query, con))
        {
            cmd.Parameters.AddWithValue("@Mobileno", bf.Mobileno);
            con.Open();
            using (var reader = cmd.ExecuteReader())
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var item = new SelectListItem();
                        item.Value = reader.GetInt32(reader.GetOrdinal("Id")).ToString();
                        item.Text = reader.GetString(reader.GetOrdinal("Fruits"));
                        items.Add(item);
                    }
                }
            }
        }
    }

    return items;
}
@model Orders.Models.Fruits
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
水果

@Html.ValidationSummary(true,“,new{@class=“text danger”}) @EditorFor(model=>model.Mobileno,new{htmlAttributes=new{@class=“form control”,@id=“txtmobno”,@Placeholder=“Mobile”}) @Html.ValidationMessageFor(model=>model.Mobileno,“,new{@class=“text danger”}) ItemsID 项目 @foreach(模型中的var项目) { @items.ItemsId @项目,项目 }

}

您尝试过SQL WHERE子句吗?是的,WHERE mobileno='9876543210',但我没有得到项目列表。。。特别的record@Shyju您可以发布您已经尝试获取记录的内容吗?我不确定为获取记录而编写的代码是否正确。请建议我找到解决方案。如何在视图中以表格格式获取记录?使用HTML表格呈现表格。在这种情况下,为什么要从代码中使用
SelectListItem
?创建一个类来表示你的数据并返回它。为什么我会得到这个错误。。。。。。传递到字典中的模型项的类型为“System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]”,但此字典需要类型为“Orders.Models.Fruits”的模型项。因为您的视图是水果对象列表的强类型,并且它需要。但是您的操作方法正在尝试传递SelectListItem对象的列表。传递正确的数据
if (!reader.IsDBNull(reader.GetOrdinal("Id")))
{
    item.Value = reader.GetInt32(reader.GetOrdinal("Id")).ToString();
}
@model Orders.Models.Fruits
@using (Html.BeginForm())  
{
@Html.AntiForgeryToken()


<div class="form-horizontal">       
    <h2>Fruits</h2>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })


    <div class="form-group">

        <div class="col-md-10">
            @Html.EditorFor(model => model.Mobileno, new { htmlAttributes = new { @class = "form-control", @id = "txtmobno", @Placeholder = "Mobile" } })
            @Html.ValidationMessageFor(model => model.Mobileno, "", new { @class = "text-danger" })
        </div>
    </div>

    <table cellpadding="0" cellspacing="0">
            <tr>
                <th>ItemsID</th>
                <th>Items</th>
            </tr>
            @foreach (var items in Model)
            {
                <tr>
                    <td>@items.ItemsId</td>
                    <td>@items.Items</td>
                </tr>
            }
        </table>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Print" class="btn btn-default" />
        </div>
    </div>

</div>