高手都进来,出现问题了。dataGridView1填充数据出现的问题。
dataGridView1填充数据出现的问题。我想在dataGridView1中的每行的第3列输入编号,按enter键,键检索数据数,有该编号的话,就填充该行数据,然后跳到第5列,数了数量再跳到下一行的第3列继续输入,这样循环,前面两行还正确,第三行开始不正确了。大家帮我看看。我把代码贴出来。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 数据库测试
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection conn;
private DataTable ScannedDt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.Columns[1].ReadOnly = true;
dataGridView1.Columns[4].ReadOnly = false;
dataGridView1.Columns[0].ReadOnly = true;
dataGridView1.Columns[2].ReadOnly = false;
dataGridView1.Columns[3].ReadOnly = false;
dataGridView1.Columns[5].ReadOnly = true;
dataGridView1.Columns[6].ReadOnly = true;
dataGridView1.Columns[7].ReadOnly = true;
conn = new SqlConnection("server=.;database=SJZL;integrated security=true;");
SqlDataAdapter sda = new SqlDataAdapter("select * from SJZL_ERP_BCPCK", conn);
DataTable Dt = new DataTable();
sda.Fill(Dt);
ScannedDt = Dt.Clone();
this.dataGridView1.AutoGenerateColumns = false;
}
protected override void OnKeyUp(System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == System.Windows.Forms.Keys.Enter)
{
e.Handled = true;
}
}
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
switch (keyData)
{
case System.Windows.Forms.Keys.Enter:
if (dataGridView1.CurrentCell == dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2] )
{
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[4];
string spbm = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString().Trim();
AddCode(spbm, dataGridView1);
}
else if (dataGridView1.CurrentCell.ColumnIndex == 4)
{
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex+1].Cells[2];
}
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public DataTable rows()
{
DataSet _ds = new DataSet();
SqlConnection conn = new SqlConnection("server=.;database=SJZL;integrated security=true;");
SqlDataAdapter _da = new SqlDataAdapter("select * SJZL_ERP_BCPCK where bcprkid='" + dataGridView1.Rows[dataGridView1.CurrentCell