我試着將數據從DB1複製到DB2.But我得到錯誤:必須聲明表變量「@TableName」。必須聲明表變量「@」。
這段代碼有什麼問題?
功能:
public void TransferData()
{
SqlConnection source = new SqlConnection(strConnectDB1);
SqlConnection destination = new SqlConnection(strConnectDB2);
source.Open();
destination.Open();
SqlCommand cmd= new SqlCommand("SELECT * FROM @TableName", source);
cmd.Parameters.AddWithValue("@TableName", listbox1.SelectedItem.ToString());
SqlDataReader reader = cmd.ExecuteReader();
SqlBulkCopy bulkData = new SqlBulkCopy(destination);
bulkData.DestinationTableName = listbox1.SelectedItem.ToString();
bulkData.WriteToServer(reader);
.
.
}
按鈕:
private void button5_Click(object sender, EventArgs e)
{
CreateTableName();
TransferData();
}
我不認爲你可以使用參數作爲這樣的表名。參數是數據值的佔位符,而不是對象名稱。 – David
@ user ..你正在添加的變量是一個表變量..這就是爲什麼你得到錯誤.. –
可能的重複:http://stackoverflow.com/questions/17428684/dynamic-table-name-in- select語句 –