方法一:
DataTable table = new DataTable();
//TODO: init table...
string connStr = "user id=" + dbInfo.UserName + ";data source=" + dbInfo.DBServerIP + ";persist security info=False;initial catalog=" + dbInfo.DatabaseName + ";password=" + dbInfo.Password;
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(conn);
sqlBulkCopy.DestinationTableName = dbInfo.TableName;
sqlBulkCopy.WriteToServer(table);
sqlBulkCopy.Close();
方法二:
DataTable table = new DataTable();
//TODO: init table...
string connStr = "user id=" + dbInfo.UserName + ";data source=" + dbInfo.DBServerIP + ";persist security info=False;initial catalog=" + dbInfo.DatabaseName + ";password=" + dbInfo.Password;
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(string.Format("select * from {0} where 1=2", dbInfo.TableName), conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
SqlCommandBuilder Builder = new SqlCommandBuilder(sda);
sda.Fill(dt);
DataRow addRow = null;
foreach (DataRow row in table.Rows)
{
addRow = dt.NewRow();
for (int i = 0; i < table.Columns.Count; i++)
{
addRow[i] = row[i];
}
dt.Rows.Add(addRow);
}
sda.Update(dt);
总结
1. 仅仅有 Insert ? 那么用 SqlBulkCopy.
2. Insert/Update/Delete ? 那么用 DataAdapter.Update.