نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل '' , '
سلام
وقت همگی بخیر
دوستان چطور میتونیم داخل یک اکتیویتی یک کوئری بنویسیم اونو به عنوان یه string ذخیره کنیم . اکتیویتی که مینویسیم داخلش یه سری متغییر هستش و من توی گذاشتن " ' مشکل دارم و هرکاری میکنم نه تو این مورد بلکه کلا منطق و روال کار را نمیدونم.
بزارید یه مثال بزنم چون نمیدونم متوجه منظورم شدید یا نه
مثلا من از select میخوام بزنم که اسم جدول یه متغییر هستش و در بخش where clause هم یه متغییر دارم.
ممنون از کمک و راهنمایی همگی
ارادتمند
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
mehrdad85
سلام
وقت همگی بخیر
دوستان چطور میتونیم داخل یک اکتیویتی یک کوئری بنویسیم اونو به عنوان یه string ذخیره کنیم . اکتیویتی که مینویسیم داخلش یه سری متغییر هستش و من توی گذاشتن " ' مشکل دارم و هرکاری میکنم نه تو این مورد بلکه کلا منطق و روال کار را نمیدونم.
بزارید یه مثال بزنم چون نمیدونم متوجه منظورم شدید یا نه
مثلا من از select میخوام بزنم که اسم جدول یه متغییر هستش و در بخش where clause هم یه متغییر دارم.
ممنون از کمک و راهنمایی همگی
ارادتمند
در تابع query که در کلاس SqliteDataBase خود اندروید دراین تابع یکی از پارامتر ها به نام selection که به صورت string هست جهت درج شرط کوئری کاربرد دارد ویک پارامتر هم به نام selectionArgs که به صورت یک آرایه sting هست می توانید مقادیر لازم برای شرطها که در زمان اجرا معتبر هستند را به کوئری پای بدید به همین راحتی ...
String tblName = "yourTable";
String[] columns = new String(){"name","id"};
String selection = "name = ? and id = ?";
String[] selectargs = new String(){"ali","1"};
SQLiteDataBase.query(false , tblName , columns , selection ,selectargs ,null , null , null , null , null);
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
mehrdad85
سلام
وقت همگی بخیر
دوستان چطور میتونیم داخل یک اکتیویتی یک کوئری بنویسیم اونو به عنوان یه string ذخیره کنیم . اکتیویتی که مینویسیم داخلش یه سری متغییر هستش و من توی گذاشتن " ' مشکل دارم و هرکاری میکنم نه تو این مورد بلکه کلا منطق و روال کار را نمیدونم.
بزارید یه مثال بزنم چون نمیدونم متوجه منظورم شدید یا نه
مثلا من از select میخوام بزنم که اسم جدول یه متغییر هستش و در بخش where clause هم یه متغییر دارم.
ممنون از کمک و راهنمایی همگی
ارادتمند
در تابع query که در کلاس SqliteDataBase خود اندروید دراین تابع یکی از پارامتر ها به نام selection که به صورت string هست جهت درج شرط کوئری کاربرد دارد ویک پارامتر هم به نام selectionArgs که به صورت یک آرایه sting هست می توانید مقادیر لازم برای شرطها که در زمان اجرا معتبر هستند را به کوئری پاس بدید به همین راحتی ...
String tblName = "yourTable";
String[] columns = new String(){"name","id"};
String selection = "name = ? and id = ?";
String[] selectargs = new String(){"ali","1"};
SQLiteDataBase.query(false , tblName , columns , selection ,selectargs ,null , null , null , null , null);
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
سلام دوست عزیز.
ممنونم از راهنماییت و وقتی که برای پاسخگویی گذاشتی.
اگه بخوام اونو به صورت string صرف و بدون بکارگیری پارامترها استفاده کنم باید چکار کنم؟میخوام منطق گذاشتن '' '' , ' ' را بدونم.
بازهم سپاسگزارم
ممنون از همه دوستان که بدون چشمداشت کمک میکنن و کار بقیه را راه میندازن
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
mehrdad85
سلام دوست عزیز.
ممنونم از راهنماییت و وقتی که برای پاسخگویی گذاشتی.
اگه بخوام اونو به صورت string صرف و بدون بکارگیری پارامترها استفاده کنم باید چکار کنم؟میخوام منطق گذاشتن '' '' , ' ' را بدونم.
بازهم سپاسگزارم
ممنون از همه دوستان که بدون چشمداشت کمک میکنن و کار بقیه را راه میندازن
دوست عزیز همانطور که شما در پست اول گفتید برای اضافه کردن مقادیر داینامیک در زمان اجرا یا باید از توابع query ویا rawQuery استفاده کنید.
حالا منظور تون از منطق "" و '' چی ؟
روش استفاده از rawQuery
String query = "select name , id from table where name = ? and id = ? ";
String[] selectargs = new String(){"ali","1"};
SQLiteDataBase.rawQuery(query ,selectargs);
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
mehrdad85
سلام دوست عزیز.
ممنونم از راهنماییت و وقتی که برای پاسخگویی گذاشتی.
اگه بخوام اونو به صورت string صرف و بدون بکارگیری پارامترها استفاده کنم باید چکار کنم؟میخوام منطق گذاشتن '' '' , ' ' را بدونم.
بازهم سپاسگزارم
ممنون از همه دوستان که بدون چشمداشت کمک میکنن و کار بقیه را راه میندازن
دوست عزیز همانطور که شما در پست اول گفتید برای اضافه کردن مقادیر داینامیک در زمان اجرا یا باید از توابع query ویا rawQuery استفاده کنید.
حالا منظور تون از منطق "" و '' چی ؟
روش استفاده از rawQuery
String query = "select name , id from table where name = ? and id = ? ";
String[] selectargs = new String(){"ali","1"};
SQLiteDataBase.rawQuery(query ,selectargs);
البته می توانید اینطوری هم استفاده کنید ولی قطعا خوب نیست!
String name = "ali" , id = "1";
String query = "select name , id from table where name = "+name+" and id = " + id ;
SQLiteDataBase.rawQuery(query ,null);
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
farhad_shiri_ex
دوست عزیز همانطور که شما در پست اول گفتید برای اضافه کردن مقادیر داینامیک در زمان اجرا یا باید از توابع query ویا rawQuery استفاده کنید.
حالا منظور تون از منطق "" و '' چی ؟
روش استفاده از rawQuery
String query = "select name , id from table where name = ? and id = ? ";
String[] selectargs = new String(){"ali","1"};
SQLiteDataBase.rawQuery(query ,selectargs);
البته می توانید اینطوری هم استفاده کنید ولی قطعا خوب نیست!
String name = "ali" , id = "1";
String query = "select name , id from table where name = "+name+" and id = " + id ;
SQLiteDataBase.rawQuery(query ,null);
سلام
ممنونم از راهنمایی و پاسخت دوست عزیز.بسیار درست و منطقی
اما اگر من به فرم دوم بنویسم کوئری را با خطلایی با این مضمون مواجه میشم.کسی علت را میدونه؟
android.database.sqlite.SQLiteException : no such column "while compiling " select....
در حالیکه اصلا من همچین ستونی تعریف نکردم و اون فقط یه پارامتر هستش و همین.پ
بزارید یه مثال بزنم
یه جدول که ستون های name, family,age دارم
حالا یه کوئری به این شکل مینویسم
"String s="SELECT age,family FROM person WHERE name="ali
حلاا اروری که میده
no such column: ali( code 1) : , while compiling SELECT age,family FROM person WHERE name= ali
پیشاپیش از همه دوستان ممنونم
مرسی
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
نقل قول:
نوشته شده توسط
mehrdad85
سلام
ممنونم از راهنمایی و پاسخت دوست عزیز.بسیار درست و منطقی
اما اگر من به فرم دوم بنویسم کوئری را با خطلایی با این مضمون مواجه میشم.کسی علت را میدونه؟
android.database.sqlite.SQLiteException : no such column "while compiling " select....
در حالیکه اصلا من همچین ستونی تعریف نکردم و اون فقط یه پارامتر هستش و همین.پ
بزارید یه مثال بزنم
یه جدول که ستون های name, family,age دارم
حالا یه کوئری به این شکل مینویسم
"String s="SELECT age,family FROM person WHERE name="ali
حلاا اروری که میده
no such column: ali( code 1) : , while compiling SELECT age,family FROM person WHERE name= ali
پیشاپیش از همه دوستان ممنونم
مرسی
لطفا اون بخش از سورس کد که همین کوئری نوشتید اینجا قرار بدید در تگ های مناسب هم کدتون قرار بدید!
نقل قول: نوشتن کوئری همراه با یه سری متغییر داخل یک اکتیویتی و ذخیره اون به عنوان یک string.مشکل ''
اول اینکه اگه لازمه از rawQuery استفاده کنید، بهتر هست از روش اولی که دوستمون اشاره کردن (که از علامت ? استفاده شده توش) استفاده کنید.
ولی در نوشتن SQL حواستون باشه که String رو بین Quotation Mark ( ' ) قرار بدید و البته کاراکتر ( ` ) معنای خاصی داره، وقتی چیزی رو بین این کاراکتر قرار میدید معنی این هست که یک فیلد یا Table هست.
خطایی که دریافت میکنید اشاره میکنه که فیلدی تحت نام ali وجود نداره، که یا این رشته رو بین ' قرار ندادید، و یا به اشتباه بین کاراکتر ` قرار داده شده.