Я попытался скопировать данные из DB1 в DB2.Но я получаю ошибку: Должен объявить переменную таблицы "@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
@ пользователь .. переменная, которую вы добавляете, является переменной таблицы .. именно поэтому вы получаете ошибку. –
возможное дублирование: http://stackoverflow.com/questions/17428684/dynamic-table-name-in- select-statement –