C# dataGridView 查詢/異動後,指回原資料列
用變數ROWSINDEX、COLUMNSINDEX
在dataGridView1_SelectionChanged記錄目前的列數、行數
在查詢時再指向該列、該行
int ROWSINDEX = 0;
int COLUMNSINDEX = 0;
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (dataGridView1.CurrentRow != null)
{
int rowindex = dataGridView1.CurrentRow.Index;
if (rowindex >= 0)
{
DataGridViewRow row = dataGridView1.Rows[rowindex];
ROWSINDEX = dataGridView1.CurrentCell.RowIndex;
COLUMNSINDEX = dataGridView1.CurrentCell.ColumnIndex;
rowindex = ROWSINDEX;
;
}
else
{
}
}
}
public void Search(string SDATES,string EDATES)
{
try
{
SqlConnectionStringBuilder sqlsb = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["dbconn"].ConnectionString);
String connectionString;
sqlConn = new SqlConnection(sqlsb.ConnectionString);
sbSql.Clear();
sbSqlQuery.Clear();
sbSql.AppendFormat(@"
SELECT
*
FROM [DB].[dbo].[TABLE]
WHERE [SDATES]>='{0}' AND [EDATES]<='{1}'
", SDATES, EDATES);
adapter = new SqlDataAdapter(@"" + sbSql, sqlConn);
sqlCmdBuilder = new SqlCommandBuilder(adapter);
sqlConn.Open();
ds.Clear();
adapter.Fill(ds, "TEMPds");
sqlConn.Close();
if (ds.Tables["TEMPds"].Rows.Count >= 1)
{
//dataGridView1.Rows.Clear();
dataGridView1.DataSource = ds.Tables["TEMPds"];
dataGridView1.AutoResizeColumns();
//dataGridView1.CurrentCell = dataGridView1[0, rownum];
if (ROWSINDEX > 0 || COLUMNSINDEX > 0)
{
dataGridView1.CurrentCell = dataGridView1.Rows[ROWSINDEX].Cells[COLUMNSINDEX];
DataGridViewRow row = dataGridView1.Rows[ROWSINDEX];
textBox1.Text = row.Cells["ID"].Value.ToString();
}
}
else
{
dataGridView1.DataSource = null;
}
}
catch
{
}
finally
{
}
}
自我LV~