【发布时间】:2014-02-11 18:59:52
【问题描述】:
我尝试将数据从 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();
}
【问题讨论】:
-
我不认为你可以像这样使用参数作为表名。参数是数据值的占位符,而不是对象名称。
-
@user..您添加的变量是一个表变量..这就是您收到错误的原因..
-
@Yaugen 这是一个完全不同的问题
标签: c#