将本地的ACCESS中部分记录,送入SQL中;
OleDbConnection conn = null;
OleDbDataAdapter adt = null;
DataTable dt = null;
OleDbCommandBuilder cmd = null;
//string constr = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = F:\测试代码\Read_Write_SQL\Read_Write_SQL\Data.mdb";
string constr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Access/3000.mdb;Persist Security Info=True;Jet OLEDB:Database Password=168168";
//连接数据库,需要传递连接字符串
conn = new OleDbConnection(constr);
//"Select * from Sourse"为SQL语句,意思是从数据库中选择叫做“Sourse”的表,“constr”为连接字符串
adt = new OleDbDataAdapter("select top 2000 f_ReadDate,f_CardNO,f_ControllerSN,f_Modified from t_d_SwipeRecord order by f_ReadDate desc", constr);
//在内存中创建一个DataTable,用来存放、修改数据库表
dt = new DataTable();
//CommandBuilder对应的是数据适配器,需要传递参数
cmd = new OleDbCommandBuilder(adt);
//打开数据库连接
conn.Open();
//通过适配器把表的数据填充到内存dt
adt.Fill(dt);
string connectString = "server=202.88.88.88,5433;uid=sa;pwd=请输入密码;database=OA_Wage";
SqlConnection sqlConn = new SqlConnection(connectString);
sqlConn.Open();
for (int i = 0; i < dt.Rows.Count; i++)
{
string date = DateTime.Parse(dt.Rows[i]["f_ReadDate"].ToString()).ToString("yyyy-MM-dd");
string time = DateTime.Parse(dt.Rows[i]["f_ReadDate"].ToString()).ToString("HH:mm");
string idno = dt.Rows[i]["f_CardNO"].ToString();
string door = dt.Rows[i]["f_ControllerSN"].ToString();
string update = DateTime.Parse(dt.Rows[i]["f_Modified"].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); ;
SqlCommand cmd1 = new SqlCommand("insert into 打卡考勤明细表 (掌形卡号,打卡日期,打卡时间,拍掌情况,闸机号,下载时间) values('" + idno + "','" + date + "','" + time + "','7','" + door + "','" + update + "') ", sqlConn);
int row2 = cmd1.ExecuteNonQuery();
}
MessageBox.Show("已將記錄写入服務器。 ");
conn.Close();
sqlConn.Close();