0
私はエクセルファイルからコピーしたものを、自分のデータベースに挿入(バルク挿入)し続けるdatagridviewに挿入するコードを持っています。 私の問題は、私は私のDataGridViewに貼り付けると、最初の行は、私の列名になります(そして追い越す)ということで、なぜ私はわからないんだけど、次のように コード:Datagridview Clickイベントの一括挿入
私の一括挿入ボタンについてはprivate void btnBulkAdd_Click(object sender, EventArgs e)
{
DataObject o = (DataObject)Clipboard.GetDataObject();
if (o.GetDataPresent(DataFormats.Text))
{
if (dgvIntake.RowCount > 0)
dgvIntake.Rows.Clear();
if (dgvIntake.ColumnCount > 0)
dgvIntake.Columns.Clear();
bool columnsAdded = false;
string[] pastedRows = System.Text.RegularExpressions.Regex.Split(o.GetData(DataFormats.Text).ToString().TrimEnd("\r\n".ToCharArray()), "\r\n");
int j = 0;
foreach (string pastedRow in pastedRows)
{
string[] pastedRowCells = pastedRow.Split(new char[] { '\t' });
if (!columnsAdded)
{
for (int i = 0; i < pastedRowCells.Length; i++)
dgvIntake.Columns.Add("col" + i, pastedRowCells[i]);
columnsAdded = true;
continue;
}
dgvIntake.Rows.Add();
int myRowIndex = dgvIntake.Rows.Count + 1;
using (DataGridViewRow myDataGridViewRow = dgvIntake.Rows[j])
{
for (int i = 0; i < pastedRowCells.Length; i++)
myDataGridViewRow.Cells[i].Value = pastedRowCells[i];
}
j++;
}
}
}
:
private void btnBulkInsert_Click(object sender, EventArgs e)
{
string strQuery;
try
{
using (SqlConnection conn = new SqlConnection("Data Source = ROTIMSQL01; Initial Catalog = TDB; Persist Security Info = True; User ID = adiM; Password = [email protected]"))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
conn.Open();
for(int i=0;i<dgvIntake.Rows.Count; i++)
{
strQuery = @"INSERT INTO [dbo].[TestTable] VALUES " + dgvIntake.Rows[i].Cells["ID"].Value + ","
+ dgvIntake.Rows[i].Cells["Other1"].Value + ",'" + dgvIntake.Rows[i].Cells["Other2"].Value + "'," + dgvIntake.Rows[i].Cells["Other3"].Value + ","
+ dgvIntake.Rows[i].Cells["Other4"].Value + "," + dgvIntake.Rows[i].Cells["Other5"].Value + ")";
comm.CommandText = strQuery;
comm.ExecuteNonQuery();
}
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
私は間違っていますか? ありがとうございます!