Operan tidak ada setelah operator 'Nama Operator'

Saya memfilter tampilan grid saya menggunakan tampilan data. Saya meneruskan perintah filter ke dataview seperti yang disebutkan di bawah;

string strFilter= " 0=0 ";

if (Session["SampleSession"] != null)
        {
            strFilter= strFilter+ " and Emp Name = '" + Session["SampleSession"].ToString() + "' ";
        }
dv.RowFilter = strFilter;  // Throws an error here!

Ini memunculkan kesalahan operan yang hilang setelah operator 'Nama Operator' di baris di atas.

saya yakin ada kesalahan kecil yang tidak dapat saya tangkap.


person xorpower    schedule 08.08.2011    source sumber
comment
Berapakah nilai strFilter ketika mencapai garis tersebut?   -  person Matt Hamilton    schedule 08.08.2011
comment
apa yang 0=0 di string strFilter= " 0=0 "; ?   -  person Maysam    schedule 08.08.2011
comment
@Maysam 0=0 akan menjadi pengganti sehingga Anda dapat dengan mudah menambahkan dan EmpName = 'Foo' dan masih memiliki ekspresi filter yang valid.   -  person Matt Hamilton    schedule 08.08.2011
comment
@Xor Dugaan saya saat ini (sampai Anda dapat memberi saya nilai strFilter) adalah variabel SampleSession Anda memiliki karakter tanda kutip tunggal di dalamnya yang merusak ekspresi. Semacam kerentanan injeksi SQL orang miskin. Mungkinkah Anda memberikan nama karyawan seperti Bob O'Hara?   -  person Matt Hamilton    schedule 08.08.2011
comment
0=0 dan EmpName = 'Car Air Systems' adalah nilai strFilter ketika mencapai garis rawan kesalahan   -  person xorpower    schedule 08.08.2011
comment
@Xor oke, kedengarannya bagus. Pasti ada bidang bernama EmpName di DataTable Anda?   -  person Matt Hamilton    schedule 08.08.2011
comment
Ya, ada nama bidang EmpName di datatable saya. Saya memeriksanya dua kali saat menugaskan ke kumpulan data   -  person xorpower    schedule 08.08.2011
comment
Berapa nilai tepatnya dari strFilter ketika terjadi kesalahan?   -  person Marc Gravell    schedule 08.08.2011
comment
Apakah cuplikan kode yang Anda berikan adalah kode sebenarnya? Nama kolom Anda tidak memiliki spasi di dalamnya? misalnya [Nama Karyawan] atau [Nama Karyawan]?   -  person Matt Hamilton    schedule 08.08.2011
comment
Ya.. nama kolom ada spasi di dalamnya. Saya mengetahui penyebab sebenarnya dari kesalahan tersebut. Bagaimana hal itu bisa dihindari. Spasi diperlukan pada nama kolom   -  person xorpower    schedule 08.08.2011
comment
Itulah masalahnya. Bungkus nama kolom Anda dalam tanda kurung siku seperti yang saya lakukan di atas. Tidak heran kami tidak bisa memberikan jawaban!   -  person Matt Hamilton    schedule 08.08.2011
comment
Semoga Anda tidak keberatan, tetapi saya telah mengedit pertanyaan Anda agar mencerminkan kesalahan dengan benar, dan menambahkan jawaban.   -  person Matt Hamilton    schedule 08.08.2011
comment
tidak apa-apa.. akan berguna di masa depan bagi orang lain   -  person xorpower    schedule 08.08.2011
comment
@Xor dengan tidak menanggapi permintaan berulang untuk nilai aktual strFilter, Anda membuang-buang waktu banyak orang untuk mencoba menjawab pertanyaan yang tidak mengandung masalah. Sekadar rekomendasi untuk masa depan: kode pos yang sebenarnya menyebabkan masalah; karena Anda (menurut definisinya) tidak memahami masalahnya, sangat mudah untuk menghapus penyebab sebenarnya secara tidak sengaja saat memposting pertanyaan.   -  person Marc Gravell    schedule 08.08.2011


Jawaban (1)


Masalah Anda adalah "Nama Emp" (nama kolom) berisi spasi dan perlu diapit tanda kurung siku dalam ekspresi filter:

strFilter= strFilter+ " and [Emp Name] = '" + Session["SampleSession"].ToString() + "' ";
person Matt Hamilton    schedule 08.08.2011
comment
Tanda kurung siku juga menyelesaikan masalah dengan nama aneh seperti 10_vces dalam situasi saya. - person Vít Bednář; 22.06.2021