2012-04-08 7 views
2

私は「@」を使用しなければなりません(名前はわかりません)。私はこれだけの行が正しくないと仮定することができますどのように@を選択SQL文に入れることができますか?

 //SQL string to count the amount of rows within the OSDE_Users table 
     string sql = "SELECT * FROM RSSFeeds where URL = @URL"; 

     SqlCommand cmd = new SqlCommand(sql, Connect()); 

     cmd.Parameters.Add("@URL", SqlDbType.VarChar, 500).Value = url; 
     closeConnection(); 
     SqlDataAdapter adapt = new SqlDataAdapter(sql, Connect()); 
     DataSet ds = new DataSet(); 
     adapt.Fill(ds); 

     // result of query filled into datasource 
     adapt.Dispose(); 

     closeConnection(); 

     return ds; 
+1

を動作するはず?私はそれがないと感じる。 –

+4

が '' URL' INT'です何 – Ryan

+0

@minitech良いキャッチ。 –

答えて

4

を宣言する必要があります、それはURLを与える削除更新で使用したり、文を挿入しますが、私はそこにそれを使用することはできません。

おそらく
cmd.Parameters.Add("@URL", SqlDbType.Int).Value = url; 

URLこのような場合は、あなたの行はこのように
(255があなたのフィールドのURLの仮定長さである)

cmd.Parameters.Add("@URL", SqlDbType.NVarChar, 255).Value = url; 
01を変更するのIntが、NVARCHAR、または他の文字型
ではありません

そして、方法によっては、「@」

EDIT「パラメータのプレフィックス」と呼ばれている:OPから最後の編集を見て、私は私が行くための正しい方法だと思うかを示すために私の答えを更新します。

  • が がオブジェクトに
  • 呼び出され、Connect()のちょうど1時間を処分/閉じることが保証されていることをusing文の中のすべての使い捨てのオブジェクトをカプセル化し、SqlConnectionオブジェクトが返さキャプチャ:私は変更されている何

    //SQL string to count the amount of rows within the OSDE_Users table 
        string sql = "SELECT * FROM RSSFeeds where URL = @URL"; 
    DataSet ds = new DataSet(); 
        using(SqlConnection cnn = Connect()) 
        using(SqlCommand cmd = new SqlCommand(sql, cnn)) 
        { 
         cmd.Parameters.Add("@URL", SqlDbType.VarChar, 500).Value = url; 
         using(SqlDataAdapter adapt = new SqlDataAdapter(cmd)) 
         { 
    
          adapt.Fill(ds); 
         } 
        } 
        return ds; 
    

    〜 別のものを作成せずに再利用

  • 前に作成したSqlCommandを使用してSqlDataAdapterを作成しました(したがって、 @U RLパラメータは

OPは(closeConnectionを使用)SQLを達する)、我々は、このメソッドの内部を見ることはありませんが、私はusingが接続を閉じて、処分するのに十分だと思います。

EDIT:SqlDataAdapterオブジェクトを作成する必要がありますラインが

using(SqlDataAdapter adapt = new SqlDataAdapter(cmd)) 
+0

はい、接続エラーです。私はそれが理由だと思うのは、SQL適応とSQLコマンドです。 – leventkalay92

+0

申し訳ありませんが、あなたのコードから想像することはできません。 – Steve

+0

それは#urlが宣言されなければならないことを示します。どうすれば解決できるの? – leventkalay92

1
cmd.Parameters.AddWithValue("@URL", url); 

エラー
関連する問題