簡體   English   中英

如何為datagridview單元格自動增加

[英]How to do auto increment for datagridview cell

我的DataGridView的某些列是從數據庫加載的。 另外,我手動向該DataGridView添加了一些列。 我想增加名為“ S_No”的第一列中每個單元格的值。

我希望代碼可以澄清我的問題:

private void bindgrid()
{
    dataGridView1.ColumnCount = 12;
    ConnectionStringSettings consettings = ConfigurationManager.ConnectionStrings["attendancemanagement"];
    string connectionString = consettings.ConnectionString;
    SqlConnection cn = new SqlConnection(connectionString);
    cn.Open();

    string dtp = dateTimePicker3grd.Value.ToString("dd/MM/yyyy");
    string query = "select s_no,Employee_id,Employee_name from Employee_Details where employee_id not in (select employee_id from dailyattendance where date = '" + dtp + "') order by S_No ";

    SqlCommand cmd = new SqlCommand(query, cn);
    using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
    {
        using (DataTable dt = new DataTable())
        {
            sda.Fill(dt);

            dataGridView1.Columns[0].Name = "S_No";
            dataGridView1.Columns[0].HeaderText = "S_No";//*Here I Want to increment cell value by 1 for every cell..and the first cell of the column should be the last serial value of database*
            dataGridView1.Columns[1].HeaderText = "Employee_id";
            dataGridView1.Columns[1].Name = "Employee_Id";
            dataGridView1.Columns[1].DataPropertyName = "Employee_id";

            dataGridView1.Columns[2].Name = "Employee_name";
            dataGridView1.Columns[2].HeaderText = "Employee_Name";
            dataGridView1.Columns[2].DataPropertyName = "Employee_name";

            dataGridView1.Columns[3].Name = "In_time";
            dataGridView1.Columns[3].HeaderText = "In_time";

            dataGridView1.Columns[4].Name = "Out_time";
            dataGridView1.Columns[4].HeaderText = "Out_time";

            dataGridView1.Columns[5].Name = "Date";
            dataGridView1.Columns[5].HeaderText = "Date";

            dataGridView1.Columns[6].Name = "Week_no_of_the_Month";
            dataGridView1.Columns[6].HeaderText = "Week_no_of_the_Month";


            dataGridView1.Columns[7].HeaderText = "Attendance";
            dataGridView1.Columns[7].Name = "Attendance";

            dataGridView1.Columns[8].HeaderText = "Image_of_the_Employee";
            dataGridView1.Columns[8].Name = "Image_of_the_Employee";

            dataGridView1.Columns[9].Name = "Image_path";
            dataGridView1.Columns[9].HeaderText = "Image_path";

            dataGridView1.Columns[10].Name = "Work_status";
            dataGridView1.Columns[10].HeaderText = "Work_status";

            dataGridView1.Columns[11].Name = "Remarks";
            dataGridView1.Columns[11].HeaderText = "Remarks";
            dataGridView1.DataSource = dt;

        }
    }
}

在您的代碼中sda.Fill(dt);行之后sda.Fill(dt); 添加以下代碼行。 請檢查是否適合您。 稍后,您可以添加異常檢查,是否從查詢中獲取記錄。

int maxSlNo = int.Parse(dt.Rows[dt.Rows.Count - 1]["s_no"].ToString());
maxSlNo++;
foreach (DataRow dtRow in dt.Rows)
{
    dtRow["s_no"] = maxSlNo;
    maxSlNo++;
}

dt.AcceptChanges();

另外,添加以下行:

dataGridView1.Columns[0].DataPropertyName = "s_no";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM