Im делает форму окна в C#, где все значения в списке отметок будут храниться в базе данных. Код на самом деле работает, однако:сохранить все выбранные значения из списка checkboxbox в базу данных
- только последнее значение проверил магазин несколько раз в базе данных так же, как данные ниже
- идентификатор сотрудника (ID) на столе
famhistory
обыкновение появляться в качестве внешнего ключа, но он появляется на таблицаname
так же, как данные ниже
Таблица: famhistory
famid famcon id
30 stroke
31 stroke
32 stroke
Таблица: name
eid name
2010-0244 Jam Lagcao
Может ли кто-нибудь помочь мне в решении моих проблем? Большое спасибо за Вашу помощь.
Ниже мой код в C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Npgsql;
namespace WindowsFormsApplication1
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
this.Load += Form6_Load;
button1.Click += button1_Click;
}
private void button1_Click(object sender, EventArgs e)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=021393;Database=postgres;");
NpgsqlCommand cmd = new NpgsqlCommand("Insert into name(eid, name) Values (@eid, @name)", conn);
cmd.Parameters.AddWithValue("@eid", textBox1.Text);
cmd.Parameters.AddWithValue("@name", textBox2.Text);
conn.Open();
foreach (DataRowView view in checkedListBox1.CheckedItems)
{
NpgsqlCommand cmd2 = new NpgsqlCommand("Insert into famhistory (famcon) Values (@famcon)", conn);
string value = view.Row[0].ToString();
Console.WriteLine(view[checkedListBox1.ValueMember].ToString());
cmd2.Parameters.AddWithValue("@famcon", checkedListBox1.SelectedValue);
cmd2.ExecuteNonQuery();
}
cmd.ExecuteNonQuery();
MessageBox.Show("Data has been saved");
conn.Close();
}
private void Form6_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
string connstring = ("Server=localhost;Port=5432;User Id=postgres;Password=021393;Database=postgres;");
NpgsqlConnection conn = new NpgsqlConnection(connstring);
NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM condition", conn);
cmd.CommandType = CommandType.Text;
conn.Open();
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
dt.TableName = "condition";
da.Fill(dt);
checkedListBox1.DataSource = dt;
checkedListBox1.DisplayMember = "conname";
checkedListBox1.ValueMember = "conname";
checkedListBox1.BindingContext = new BindingContext();
string[] condition = dt.Rows[0]["conname"].ToString().Split(',');
}
}
}
Вы создаете переменную значений и никогда не используете ее. – dbugger
@dbugger извините, но я не понимаю, что вы имеете в виду. – newbie
Возможно, это то, что вы хотели сохранить в базе данных ... string value = view.Row [0] .ToString(); Но вы никогда с этим не справляетесь. – dbugger