C# datagridview добавляет дату, когда я нажимаю флажок
всем привет!
я хочу поместить текущую дату и время в выбранную строку в ячейке Date_Pec, когда я устанавливаю флажок.
и естественно обновить базу данных sql.
спасибо за вашу помощь
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace WindowsFormsApplication3 { public partial class Form1 : Form { SqlConnection con; SqlDataAdapter da; DataSet ds; SqlCommandBuilder builder; private int i; public Form1() { InitializeComponent(); con = new SqlConnection(CONNECTION.CONNECTION_STRING_1); } private void Form1_Load(object sender, EventArgs e) { // TODO: cette ligne de code charge les données dans la table 'isothermicDataSet.USR_ProdMonitor'. Vous pouvez la déplacer ou la supprimer selon les besoins. this.uSR_ProdMonitorTableAdapter2.Fill(this.isothermicDataSet.USR_ProdMonitor); string sql = "SELECT date_pec,scandate,Poste,NoSeq,Couleur,ProductionLot FROM USR_ProdMonitor WHERE (Poste = N'Parclose')"; ds=new DataSet(); da=new SqlDataAdapter(sql,con); da.Fill(ds); builder=new SqlCommandBuilder(da); dataGridView1.DataSource=ds.Tables[0]; } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { bool selected = !Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["check"].Value); dataGridView1.Rows[1].Selected = true; if (selected) { SqlConnection con = new SqlConnection(CONNECTION.CONNECTION_STRING_1); string SqlCmdText = "INSERT INTO USR_ProdMonitor(Date_Pec)" + DateTime.Now (); int next = this.dataGridView1.CurrentRow.Index + 1; dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red; this.dataGridView1.CurrentCell = this.dataGridView1.Rows[next].Cells[this.dataGridView1.CurrentCell.ColumnIndex]; } else { dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightGreen; dataGridView1.Rows[e.RowIndex].Cells["check"].Value = !Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells["check"].Value); } { } } private void button1_Click(object sender, EventArgs e) { Application.Exit(); } } }
OriginalGriff
И что же?
Что вы делаете, чего не ожидали, или не делаете, что сделали?
А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?
denis.larocque
что если то, что у меня есть, попробовать, но не получится,
что я хочу, так это когда щелкаю флажок в datagrid, который вводит текущую дату в строку в ячейке Date_pec, и обновляю базу данных sql (USR_Prodmonitor)
если (выбрано)
{
SqlConnection con = new SqlConnection(CONNECTION.CONNECTION_STRING_1);
строка SqlCmdText = "вставить в USR_ProdMonitor(Date_Pec)" + DateTime.Now
OriginalGriff
"doent work" или "It doesn't work" - это, вероятно, самый бесполезный отчет о проблеме, который мы получаем, и мы получаем его много. Он ничего не говорит нам о том, что происходит или когда это происходит.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали.
Расскажите нам, что вы сделали, чтобы это произошло.
Расскажите нам, что вы пытались выяснить, почему это не сработало, и что на самом деле происходит.
Сообщайте нам о любых сообщениях об ошибках.
Ты здесь уже 6 лет! Вы уже должны знать, как задать вопрос и дать информацию, которая поможет человеку, пытающемуся ответить!
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
Richard Deeming
Это недопустимая команда SQL; вы не используете параметры; и вы никогда не выполняете ее в любом случае.
using (SqlConnection con = new SqlConnection(CONNECTION.CONNECTION_STRING_1)) using (SqlCommand cmd = new SqlCommand("INSERT INTO USR_ProdMonitor (Date_Pec) VALUES (@Date_Pec)", con)) { cmd.Parameters.AddWithValue("@Date_Pec", DateTime.Now); con.Open(); cmd.ExecuteNonQuery(); }
denis.larocque
хорошо, я попробовал это сделать, но это дает мне ошибку System.Data.SqlClient.SqlException : 'неправильный синтаксис рядом '('.'
если (выбрано)
{
SqlConnection con = new SqlConnection(CONNECTION.CONNECTION_STRING_1);
Команда sqlcommand cmd и = новая команда sqlcommand("обновление USR_ProdMonitor (Date_Pec) значения (@дата)", кон);
против.Открыть();
cmd.параметры.AddWithValue("@DATE", DateTime.Now);
УМК.Метод executenonquery();
против.Закрывать();
Richard Deeming
Ваш вопрос и ваш комментарий показывают INSERT
команда.
Мой комментарий показывает, что INSERT
команда.
Вы не можете просто заменить слово "вставить" на "обновить", потому что синтаксис для них совершенно разный.
Если вы хотите обновить запись, то вам необходимо выполнить допустимую команду обновления.
denis.larocque
хорошо, я начну с нуля, у меня есть BD на sql server, и эта БД уже имеет данные на нем.
в моей программе у меня есть datagrid, чтобы показать эти данные. в этой датагридке я поставил галочку.
когда я поставлю этот флажок, он изменит цвет строки и перейдет к следующей строке. (эта часть кода отлично работает)
Но я хочу в то же время добавить дату и час на ячейку в этой выбранной строке.(Date_pec) и в то же время обновите базу данных sql и обновите datagrid.
Я не нет, если им понятно (мой английский оставляет желать лучшего лолл)
Richard MacCutchan
Вы создаете SQL - соединение и оператор INSERT, но где вы на самом деле выполняете команду?