2017-02-26 63 views
0

我看不出我要去哪裏錯了,並想知道你是否可以提供幫助? 只是一個基本的SELECT與表。 關於錯誤消息,我以爲我是在參數部分聲明@tableName變量?錯誤使用SqlAdapter'{「必須聲明表變量」@ tableName 「。」}'

SqlDataAdapter adapter = new SqlDataAdapter(
           "SELECT * FROM @tableName",con); 

         adapter.SelectCommand.Parameters.Add(new SqlParameter 
         { 
          ParameterName = "@tableName", 
          Value = tableName, 
          SqlDbType = SqlDbType.NVarChar 
         });        
         adapter.Fill(databaseList); 

回答

1

From條款不能表達的話,不能發送參數

試試這個

SqlDataAdapter adapter = new SqlDataAdapter(string.Format("Select * From {0}", "yourTableName"), con); 
+0

這是SQL注入。該名稱必須*正確*引用。 –

+0

是的,這是SQL注入,但任何方式本地SqlQuery?也許檢查表名如果存在數據庫。 @RemusRusanu –

+0

https://msdn.microsoft.com/en-us/library/ms176114.aspx –

2

您無法通過表來選擇作爲參數。通過在SQL字符串中插入正確引用的(轉義的)表名,動態構建SQL。