C# 在Mysql数据库中存储数据列表?
我有一个字符串数据列表,我想以列类别存储在MySQL数据库表中 有没有一种方法可以一次性存储它,因为它的列表很长C# 在Mysql数据库中存储数据列表?,c#,mysql,database,C#,Mysql,Database,我有一个字符串数据列表,我想以列类别存储在MySQL数据库表中 有没有一种方法可以一次性存储它,因为它的列表很长 public Class PickerView{ List<string> CategoriesPicker = new List<string>(); public Button SaveItemsButton = new Button(); public PickerView() { CategoriesPick
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中的项目列表保存到数据库中。简单使用mysql insert into语句 插入到tbl1值中 1,'Name1',1,null, 2,'Name2',2,空, 3,'Name3',1,空 3,'Name3',1,null当然是tbl1的结构 这将适用于您使用的任何语言,甚至适用于comand line、MySQL和MariaDB,因为这与数据库设计背道而驰 您所做的是@nbk建议的,并且使用您选择的任何数据库框架插入多行。以下是MariaDB/MySQL的示例表定义(如果您还没有): 微软目前推荐的与数据库交互的方式是。那里的文档可以帮助您连接到数据库、创建表、向表中添加行以及将所有这些内容保存到数据库中
希望有帮助 我在代码中添加了使用块,以确保即使出现错误,也会关闭和释放数据库对象 只设置一次查询文本,它在循环的每次迭代中都保持不变。同样,参数也添加到循环外部。只有参数的值在循环内更改。我们使用.ExecuteNonQuery而不是读卡器来插入、更新或删除。ExecuteReader用于返回数据
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();
}
}
}
}
你所说的一次性储存是什么意思?你尝试过什么,但什么不起作用?一个可能的选择是@David as店内所有东西同时出现,而不是一次出现一个time@loisbotwe:在这种情况下,前面提到的批量加载程序类可能是最好的选择。另一种选择可能是创建一组insert语句,然后成批执行它们,如果驱动程序支持,则可能作为一个用分号分隔的大型SQL命令执行。@stuartd我的数据不在文件中,而是在c语言的列表中。你是说除了单独存储之外,没有办法一次存储它吗。