رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

پست های پیشنهاد شده

hocein1    28

گروه دانشجو

درود وقت بخیر. چطوری میتونم جدول های زیاد تو دیتابیس بسازم ؟ 

من این کد رو اعمال کردم نمیشه . 

sql1.ExecNonQuery("CREATE TABLE '%"&actMenu.databasetable&"%' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT)")

میخوام نام جدول اونی باشه ک تو اکتیویتی databasetable  مقدار گرفته . اما نمیشه خطا میاد . بدون % و ' هم زدم نشد. 

Error occurred on line: 12 (Database)
android.database.sqlite.SQLiteException: table '' already exists (code 1): , while compiling: CREATE TABLE '' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
	(table '' already exists (code 1): , while compiling: CREATE TABLE '' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT))
#################################################################
	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093)
	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:670)
	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
	at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
	at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1812)
	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1743)
	at anywheresoftware.b4a.sql.SQL.ExecNonQuery(SQL.java:74)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:755)
	at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:345)
	at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
	at sefaresh.net.golestanf.ir.actmenu.afterFirstLayout(actmenu.java:102)
	at sefaresh.net.golestanf.ir.actmenu.access$000(actmenu.java:17)
	at sefaresh.net.golestanf.ir.actmenu$WaitForLayout.run(actmenu.java:80)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:145)
	at android.app.ActivityThread.main(ActivityThread.java:6917)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

 

به اشتراک گذاری این ارسال


لینک به ارسال
سجاد مروی    337

دپارتمان مدیریت

درود.

در انتهای کد بعد از بستن پرانتز باید خصوصیات و ویژگی های دیتابیس مشخص بشه !

چیزی شبیه کد زیر :

CREATE TABLE `tbl_name` ( `clm_one` text CHARACTER SET utf8mb4 NOT NULL , `clm_two` text NOT NULL) ENGINE=MyISAM AUTO_INCREMENT=609 DEFAULT CHARSET=utf8;

هیچ نگارش اظافی مثل % هم نیاز نیست ! ساختارش سادست ! نام ستون در دو تا کوتیشن ( ' ) و بعد خصوصیاتش و در انتها یک , و باز از اول ...

به اشتراک گذاری این ارسال


لینک به ارسال
hocein1    28

گروه دانشجو

در 19 ساعت قبل، سجاد مروی گفته است :

هیچ نگارش اظافی مثل % هم نیاز نیست ! ساختارش سادست ! نام ستون در دو تا کوتیشن ( ' ) و بعد خصوصیاتش و در انتها یک , و باز از اول ...

فکر کنم یا من متوجه منظورتون نشدم یا شما. 

چون تو کوتیشین بزارم دیگه متغیر نمیشه گذاشت ... 

تئوریش اینه من میخوام ی متغیر داشته باشم که بیاد یک مقدار بگیره مثلا Tbl_news بعد بیاد تو دیتابیس چک شه اگر این جدول وجود نداشت یک جدول با این اسم بسازه.

توضیح بیشتر لازمه؟ 

به اشتراک گذاری این ارسال


لینک به ارسال
شهریار شریعتی    514

دپارتمان سرپرست

در در 30 مهر 1396 در 13:10، asabi گفته است :

درود وقت بخیر. چطوری میتونم جدول های زیاد تو دیتابیس بسازم ؟ 

من این کد رو اعمال کردم نمیشه . 


sql1.ExecNonQuery("CREATE TABLE '%"&actMenu.databasetable&"%' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT)")

میخوام نام جدول اونی باشه ک تو اکتیویتی databasetable  مقدار گرفته . اما نمیشه خطا میاد . بدون % و ' هم زدم نشد. 


Error occurred on line: 12 (Database)
android.database.sqlite.SQLiteException: table '' already exists (code 1): , while compiling: CREATE TABLE '' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT)
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
	(table '' already exists (code 1): , while compiling: CREATE TABLE '' (sID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT))
#################################################################
	at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
	at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1093)
	at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:670)
	at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
	at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
	at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
	at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1812)
	at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1743)
	at anywheresoftware.b4a.sql.SQL.ExecNonQuery(SQL.java:74)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:755)
	at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:345)
	at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:139)
	at sefaresh.net.golestanf.ir.actmenu.afterFirstLayout(actmenu.java:102)
	at sefaresh.net.golestanf.ir.actmenu.access$000(actmenu.java:17)
	at sefaresh.net.golestanf.ir.actmenu$WaitForLayout.run(actmenu.java:80)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:145)
	at android.app.ActivityThread.main(ActivityThread.java:6917)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

 

مقداری که در کوئری به عنوان نام جدول قرار میدید خالیه

به اشتراک گذاری این ارسال


لینک به ارسال
hocein1    28

گروه دانشجو

در 15 ساعت قبل، شهریار شریعتی گفته است :

مقداری که در کوئری به عنوان نام جدول قرار میدید خالیه

شما بگید الان چیکار کنم ک خالی نشه ؟  چیکار  کنم که بتونم جداول با نام های مختلف بسازم. 

گرنه خودم میدونم نوشته کوئری که وارد کردی خالیه و جدوله ' ' وجود داره از قبل. 

پیشاپیش سپاس از راهنمایی .

به اشتراک گذاری این ارسال


لینک به ارسال
شهریار شریعتی    514

دپارتمان سرپرست

در 3 ساعت قبل، asabi گفته است :

شما بگید الان چیکار کنم ک خالی نشه ؟  چیکار  کنم که بتونم جداول با نام های مختلف بسازم. 

گرنه خودم میدونم نوشته کوئری که وارد کردی خالیه و جدوله ' ' وجود داره از قبل. 

پیشاپیش سپاس از راهنمایی .

اول اینکه مقدار نام تیبل رو که در متغیر دارید قبل از اجرای کوئری لاگ کنید و ببینید ایا خالیه یا نه .

کد رو اصلاح کردم :

sql1.ExecNonQuery($"CREATE TABLE IF NOT EXISTS ${actMenu.databasetable} (sID INTEGER NOT NULL,sTitle TEXT,sDesc TEXT,sImage TEXT,sDate TEXT,sDateEn TEXT,sCreator TEXT,sCat TEXT,sLink TEXT,sState TEXT,PRIMARY KEY (sID))"$)

نکته : کوئری شما اشتباه بود و قطعا بعد از رفع این خطا باید دنبال رفع اون ایراد می رفتید . شما برای اینکه یک کوئری درست بنویسید باید داخل Navigate SQL Light دقیقا همین جدول رو درست کنید و بعد در تب های بالا SQL PREVIEW رو انتخاب کنید و کوئری رو از اونجا بردارید و استفاده کنید .

به اشتراک گذاری این ارسال


لینک به ارسال
hocein1    28

گروه دانشجو

در در 2 آبان 1396 در 13:17، شهریار شریعتی گفته است :

نکته : کوئری شما اشتباه بود و قطعا بعد از رفع این خطا باید دنبال رفع اون ایراد می رفتید . شما برای اینکه یک کوئری درست بنویسید باید داخل Navigate SQL Light دقیقا همین جدول رو درست کنید و بعد در تب های بالا SQL PREVIEW رو انتخاب کنید و کوئری رو از اونجا بردارید و استفاده کنید .

رفیق جان من اصلا دیتابیس آفلاین رو اول نمیسازم میام تو برنامه چک میکنم اگر ساخته شده بود هیچی اگر نه بسازش بعد جدول رو براش تعریف میکنم و در انتهای ستون ها تعریف میشه و بعد فیلدها پر میشن. 

فکر کنم متوجه سوال نشدید 

به اشتراک گذاری این ارسال


لینک به ارسال

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • مطالب مشابه

    • توسط Yaseen
      سلام دوستان
      این برنامه هرنوع فایل رو میتونه ذخیره کنه میتونه بعنووان برنامه ذخیره اسناد و فایلها مورد استفاده قرار بگیره 
      فایل رو به بایت تبدیل کردم نحوه ذخیره توی هارد هم همینطوره
      توی گزینه انتخاب محدودیت حجم هم هست میشه تغییرش داد
      یه ترد گذاشتم برای زمان ذخیره فرم
      توی همه متدها و اکثرا خط ها رو توضیح دادم
      اگه قرار باشه کارهای دیگه هم زمان انجام بشه میتونیم توی بک گراندورکر و async بزاریم اما ایجا ما یک عمل رو انجام میدیم و اونا لازم نیستن
      در کل برنامه جالبی هست از اکسس استفاده کردم مشکلات sql دست و پای ادمو میبنده خودم یه بانک دارم 400 هزار رکورد داره بنظرم اکسس تا 1 میلیون رکور توانایی خوبی داره
      ضمنا توی سایتم این برنامه رو پولی گذاشته بودم بخاطر لرن نت که واقعا محل تبادل دانش هست و فروم بسیار عالی هست با مدیران بسیار مسلط همینطوری گذاشتم تا دوستان استفاده کنند
      FileSave2DB-urmiapazar.ir.rar
       
       

    • توسط namefree
      سلام خسته نباشید دوستان 
      من قبلا با sqlite  دیتا بیس ساختم و مشکلی نداشتم اما وقتی دوباره visual studio  نسخه  professional رو نصب کردم و extensions  مربوط به Sqlite  رو نصب کردم تا دیتا بیس بسازم قسمت مربوط به ساخت دیتا بیس خالی بود اگه کسی میتونه راهکار بده ممنون دوستان وقت گذاشتین.


    • توسط beniamine
      سلام دوستان چطوری میشه در ربات تلگرام جوین اجباری قرار داد برای کانال؟
      با استفاده از سی شارپ
    • توسط Javad25564
      سلام.من یه باتن میخوام بزارم تا باتنو ولیک میکنم یه متنی را به شماره ای که از قبل کد نویسی کردیم بفرسه.میدونم از کتابخانه phoneباید استفاده کرد.ولی هر کاری میکنم برنامه باز میشه.ولی وقتی باتن را کلیک میکنم متوقف میشه.چهارتا خط که بیشتر نیست
  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×