簡體   English   中英

檢索ODBC表並插入SQL Server CE數據庫

[英]Retrieve ODBC table and Insert into SQL Server CE database

我有一個ODBC連接到數據庫,我需要一個數據表。 該表有大約20行,以及數千行數據。

我打算將此表插入到我的本地SQL Server CE數據庫中,我可以在其中進一步使用它。 兩個連接都經過測試和工作。

我的嘗試只是插入一列來保持簡單(我是C#,編程和stackoverflow的新手)。

OdbcConnection c = new OdbcConnection(ConnectionString1);
SqlCeConnection d = new SqlCeConnection(ConnectionString2);

c.Open();
d.Open();

string sqlC = "SELECT * FROM ODBCTABLE WHERE ODBCCOLUMN='12345'";
OdbcCommand commandC = new OdbcCommand(sqlC, c);

string sqlD = "INSERT INTO SQLCETABLE(SQLCECOLUMN) VALUES (@sql)";
SqlCeCommand commandD = new SqlCeCommand(sqlD, d);

OdbcDataReader reader = commandC.ExecuteReader();

while (reader.Read())
{
  string x = reader[0].ToString();                   
  commandD.Parameters.Add("@sql",SqlDbType.NVarChar, 5).Value = x;
  commandD.ExecuteNonQuery();     
}

c.Close();
c.Dispose();

d.Close();
d.Dispose();

我收到錯誤此SqlCeParameterCollection已包含具有此名稱的SqlCeParameter。

  1. 為什么這是錯的?
  2. 有沒有辦法解決這個問題?
  3. 有沒有更好的方法來進行此轉移? (我相信odbc不存在sqlbulktransfer)
  4. 作為我在Stackoverflow上的第一篇文章,我是否正確地發布了一個問題?

更改代碼的這一部分

commandD.Parameters.Add("@sql",SqlDbType.NVarChar, 5); 
while (reader.Read()) 
{ 
  string x = reader[0].ToString();                   
  commandD.Parameters["@sql"].Value = x ;
  commandD.ExecuteNonQuery();      
} 

出現問題的原因是,在每個循環中,您重復向集合添加相同的命名參數,從而導致上述錯誤。
在循環外部移動參數的創建並僅更新循環內的值應該可以解決錯誤。

是的,我認為你已經正確地發布了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM