我在SQL服务器中有10个表,我想将这些表值导出到包含10个表的ms访问数据库。那么有没有办法使用c#代码导出数据。 我不想为每个表写很多代码以从特定的表中获取数据,然后逐行插入到相应的访问表中是否有任何可用的快捷方式,请使用,请让我知道。如何将数据表值添加到ms访问表使用c#
回答
嗯,我得到了答案。我用循环来生成如下所示的查询字符串。
public void MainAccess(int _i)
{
DataTable dt = ds.Tables[_i];
string sql = "";
for (int i = 0; i < dt.Rows.Count; i++)
{
sql = sql + "INSERT INTO "+ _tableString[_i] + " values('";
for (int j = 0; j < dt.Columns.Count; j++)
{
sql += dt.Rows[i][j].ToString().Trim();
if (j != dt.Columns.Count - 1)
{
sql += "','";
}
else
{
sql += "')";
}
}
ExecuteQuery(sql);
sql = null;
}
}
我thik此代码可以帮助你。
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"Database.accdb\";Persist Security Info=False;");
//command to insert each ASIN
OleDbCommand cmd = new OleDbCommand();
//command to update each column (ASIN, Retail... from CSV)
OleDbCommand cmd1 = new OleDbCommand();
//load csv data to dtCSV datatabe
DataTable dtCSV = new DataTable();
dtCSV = ds.Tables[0];
// Now we will collect data from data table and insert it into database one by one
// Initially there will be no data in database so we will insert data in first two columns
// and after that we will update data in same row for remaining columns
// The logic is simple. 'i' represents rows while 'j' represents columns
cmd.Connection = myConnection;
cmd.CommandType = CommandType.Text;
cmd1.Connection = myConnection;
cmd1.CommandType = CommandType.Text;
myConnection.Open();
for (int i = 0; i <= dtCSV.Rows.Count - 1; i++)
{
cmd.CommandText = "INSERT INTO " + lblTable.Text + "(ID, " + dtCSV.Columns[0].ColumnName.Trim() + ") VALUES (" + (i + 1) + ",'" + dtCSV.Rows[i].ItemArray.GetValue(0) + "')";
cmd.ExecuteNonQuery();
for (int j = 1; j <= dtCSV.Columns.Count - 1; j++)
{
cmd1.CommandText = "UPDATE " + lblTable.Text + " SET [" + dtCSV.Columns[j].ColumnName.Trim() + "] = '" + dtCSV.Rows[i].ItemArray.GetValue(j) + "' WHERE ID = " + (i + 1);
cmd1.ExecuteNonQuery();
}
}
myConnection.Close();
不,这不会帮助我。我已将所有表存储到数据集中。现在我想要将这些表值插入ms访问的相应表中。我不想逐行插入,我只是想将整个表值转储到ms访问表值中。 – JeetDaloneboy
@JeetDaloneboy:DataSet不能以这种方式工作。数据集通常是强类型的。即使它们不是你的情况,它们也需要CRUD命令(它们再次在行级别工作),以便每个表执行DDL。至少你需要在每对相应的SQL Server和Access表之间有一个转换函数。 – dotNET
我不能将数据表值转储到访问表? – JeetDaloneboy
如果这是一个一次性的操作,你应该使用数据导出访问的SQL Server或导入功能功能执行此操作。对于不想编写代码的最终用户来说,它们会很简单。其中您只需选择数据库,要导出的表格和目标数据库,然后单击按钮即可导出所有内容。
首先确保访问表列具有相同的列名称和类似的类型。然后你可以使用这个我认为非常快速和优雅的功能。
public void AccessBulkCopy(DataTable table)
{
foreach (DataRow r in table.Rows)
r.SetAdded();
var myAdapter = new OleDbDataAdapter("SELECT * FROM " + table.TableName, _myAccessConn);
var cbr = new OleDbCommandBuilder(myAdapter);
cbr.QuotePrefix = "[";
cbr.QuoteSuffix = "]";
cbr.GetInsertCommand(true);
myAdapter.Update(table);
}
使用此代码
问题是访问表名和列名不同于sql表和列名。 :( – JeetDaloneboy
- 1. 使用c将文件附加到ms访问数据库#
- 2. 如何将列添加到访问数据库(mdb)表
- 3. 如何使用c将标识列添加到数据表中#
- 4. 如何使用C#将数据插入MS访问文件?
- 5. 如何将数据表与图例键添加到C#中的MS Chart?
- 6. 如何使用php将mysql数据库导出到ms访问
- 7. 将数据添加到表
- 8. C#将数据表添加到数据表
- 9. 如何将ms访问2013数据库连接到使用C++的visual studio 2013
- 10. 将asp.net web表单连接到ms访问数据库
- 11. 使用Linq将值添加到数据表中的列
- 12. 如何使用RODBC将数据框添加到mysql表中
- 13. 将数据表添加到表(wordpress)
- 14. c# - 如何通过MS访问数据库和获取表的列表?
- 15. 如何将数据集中的值添加到列表中?
- 16. C#将负值添加到图表
- 17. 将数据表添加到数据集
- 18. ms访问数据透视表名称
- 19. Excel数据透视表 - MS访问
- 20. 如何将值添加到列表框?
- 21. 加载访问数据表表格到数据表
- 22. 检查数据表中的值并将数值添加到数据表中
- 23. 使用WPF C将两个文本框值添加到SQL数据库表中#
- 24. ms访问查询以将日期表加入时间表表
- 25. 如何将网格视图值添加到使用for循环的数据表
- 26. 访问到MS Access用C#
- 27. 如何将样式添加到空白访问2007表单中?
- 28. 使用codeigniter的数据表不会将结果添加到表
- 29. C# - 将数据添加到列表内部列表
- 30. 如何用C#获得访问MDB数据库表的列表
你没有提及到目前为止所尝试的任何内容。 – dotNET
你也似乎没有在互联网上做过任何搜索。这个问题已经[在SO之前回答](http://stackoverflow.com/questions/22139100/export-sql-server-2008-database-into-ms-access-database)。 – dotNET