首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mysql DataBase中存储数据列表?

问在Mysql DataBase中存储数据列表?
EN

Stack Overflow用户
提问于 2019-02-07 01:07:30
回答 3查看 849关注 0票数 0

我有一个字符串数据列表,我想将其存储在我的MySQL数据库表的“类别”列中。

有没有办法存储它,因为它的列表很长。

代码语言:javascript
复制
  public Class PickerView{
  List<string> CategoriesPicker = new List<string>();
  public Button SaveItemsButton = new Button();
  public  PickerView()
    {

        CategoriesPicker.Items.Add("Hotels & Travel");
        CategoriesPicker.Items.Add("Restaurant");
        CategoriesPicker.Items.Add("Wholesalers");
        CategoriesPicker.Items.Add("Automotives");
        CategoriesPicker.Items.Add("Pets");
        CategoriesPicker.Items.Add("Musical Instruments Services");
        CategoriesPicker.Items.Add("Specialty Food");
        CategoriesPicker.Items.Add("Food");
        CategoriesPicker.Items.Add("Boutique");
        CategoriesPicker.Items.Add("Home & Gardens");
        CategoriesPicker.Items.Add("Shopping");
        CategoriesPicker.Items.Add("Education");
        CategoriesPicker.Items.Add("Books,Mags,Music & Video");
        CategoriesPicker.Items.Add("Fashion");
        CategoriesPicker.Items.Add("Event Planning & Services");
        CategoriesPicker.Items.Add("Arts & Craft");
        CategoriesPicker.Items.Add("Local Services");
        CategoriesPicker.Items.Add("NightLife(Bars..)");

        SaveItemsButton.Clicked += SavedItemsButton_Clicked
    }
    private void SavedItemsButton_Clicked(object sender, System.EventArgs e)
    {
         string sqlstring = "server=; port= ; user id =;Password= ;Database=test;";
        MySqlConnection conn = new MySqlConnection(sqlstring);
        try
        {
            conn.Open();
        }
        catch (MySqlException ex)
        {
            throw ex;
        }
        string Query = "INSERT INTO test.maintable (Categories)values('" +(**//I DONT KNOW WHAT TO WRITE HERE TO SAVE ALL AT ONCE**) + "');";
        MySqlCommand cmd = new MySqlCommand(Query, conn);
        cmd.ExecuteReader();
        conn.Close();
    }
 }`

当单击SaveItemsButton时,如何将CategoriesPicker中的项目列表保存到数据库中。

EN

回答 3

Stack Overflow用户

发布于 2019-02-07 01:54:15

只需使用mysql insert into语句即可。

insert into tbl1 values (1,‘Name3 1’,1,null),(2,‘Name3 2’,2,null),(3,‘Name3 3’,1,null);

(3,'Name3',1,null)当然是tbl1的结构,它适用于您使用的任何语言,甚至适用于命令行

票数 1
EN

Stack Overflow用户

发布于 2019-02-07 02:15:20

MySQL (和MariaDB) don't have list-valued column types,因为它在数据库设计上与first normal form背道而驰。

相反,您所做的是@nbk建议的,并使用您选择的任何数据库框架,插入多行。以下是MariaDB/MySQL的示例表定义(如果您还没有这样的表定义):

微软目前推荐的与数据库交互的方式是Entity Framework Core。那里的文档可以帮助您连接到数据库、创建表、向表中添加行以及将所有这些内容保存到数据库中。

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2019-02-17 14:48:42

我在代码中添加了使用块,以确保即使出现错误也能关闭和释放数据库对象。

只设置一次查询文本,每次循环迭代都保持不变。同样,参数被添加到循环之外。只有参数的值在循环内更改。我们使用.ExecuteNonQuery (而不是reader)进行插入、更新或删除。.ExecuteReader用于返回数据。

代码语言:javascript
复制
    private List<string> CategoriesPicker = new List<string>();
    //add all the items to the list
    private void SavedItemsButton_Clicked(object sender, System.EventArgs e)
    {
        string sqlstring = "server=; port= ; user id =;Password= ;Database=test;";
        using (MySqlConnection conn = new MySqlConnection(sqlstring))
        {
            string Query = "INSERT INTO test.maintable (Categories)values(@Category);";
            using (MySqlCommand cmd = new MySqlCommand(Query, conn))
            {
                cmd.Parameters.Add("@Category", MySqlDbType.VarChar);
                try
                {
                    conn.Open();
                }
                catch (MySqlException ex)
                {
                    throw ex;
                }
                foreach (String item in CategoriesPicker)
                {
                    cmd.Parameters["@Category"].Value = item;
                    cmd.ExecuteNonQuery();
                }
            }
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54558963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档