我需要通过代码将 Access 数据库导入到 Sql Server。我多年来用 C# 制作的软件已集成到 Access 数据库中。从现在开始,我们正在迁移到 Sql Server,目的是在升级到下一个版本时,系统将只与 Sql Server 一起工作。我想首先创建一个具有相同表名和列名的Sql数据库,软件读取Access表并将数据保存在Sql数据库中。有没有其他更实用的方法可以通过编码来做到这一点?
我一直在搜索并发现只准备了工具,但没有通过编码。
好的,假设您的访问数据库表有 3 列,第一个是整数类型,第二个是字符串(varchar)和第三个是 DateTime(日期)。
所以这是将数据从 Access 传递到 Sql Server 必须执行的代码:
DataTable table = new DataTable();
// get data from access
using(OleDbConnection conn = new OleDbConnection("connString1"))
{
using(OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT * FROM MyTable", conn))
da.Fill(table);
}
//insert data into Sql server:
using(SqlConnection conn = new SqlConnection("connString2"))
{
using(SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = @"INSERT INTO MyTable VALUES (@p1, @p2, @p3)";
cmd.Connection = conn;
cmd.Parameters.Add("@p1", SqlDbType.Int);
cmd.Parameters.Add("@p2", SqlDbType.CarChar, 50);
cmd.Parameters.Add("@p3", SqlDbType.DateTime);
conn.Open();
for(int i = 0; i < table.Rows.Count; i++)
{
cmd.Parameters["@p1"].Value = Convert.ToInt32(table.Rows[i][0]);
cmd.Parameters["@p2"].Value = table.Rows[i][1].ToString();
cmd.Parameters["@p3"].Value = Convert.ToDateTime(table.Rows[i][2]);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句