请教大佬,如何使用arrdio界面控件框:如使用edit文本控件对数据库sqlite中工作表的切换。如下代码,如果我有"工作表日志表2",怎么在主界面设置切换查询

少先生 2023-8-9 1194

Code AardioLine:60复制
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
    • import win.ui;
    • /*DSG{{*/
    • mainForm = win.form(text="sqlite 入门";right=425;bottom=498)
    • mainForm.add(
    • button={cls="button";text="查询";left=297;top=7;right=396;bottom=42;z=2};
    • editResult={cls="edit";left=12;top=61;right=400;bottom=491;edge=1;multiline=1;z=3};
    • editUser={cls="edit";text="小王";left=14;top=11;right=282;bottom=40;edge=1;multiline=1;z=1}
    • )
    • /*}}*/
    • import sqlite;
    • var db = sqlite("/intro2.db");//打开数据库连接,参数指定硬盘文件路径
    • //创建数据表
    • if( not db.existsTable("工作日志表") /*是否已存在指定的表*/ ) {
    • db.exec( "CREATE TABLE [工作日志表]( 姓名,工作地点,时间);" );
    • }
    • //创建预处理命令,用 @ 字符作为 SQL 命名参数的前缀
    • var cmd = db.prepare("INSERT INTO [工作日志表] VALUES ( @姓名,@工作地点,@时间 );")
    • //执行命令语句,插入测试数据,并指定 SQL 命名参数
    • cmd.step(
    • 姓名 = "小张";
    • 工作地点 = "北京";
    • 时间 = time.now();
    • );
    • //插入测试数据,函数唯一的表参数首尾的 { } 可以省略
    • cmd.step( {
    • 姓名 = "小王";
    • 工作地点 = "上海";
    • 时间 = time.now();
    • } );
    • //响应按钮事件
    • mainForm.button.oncommand = function(id,event){
    • //查询一条数据,查询多条请改用 db.each() 或者 db.getTable() 函数
    • var result = db.stepQuery("SELECT * FROM [工作日志表] WHERE ??",{ {
    • 姓名 = mainForm.editUser.text;
    • } } )
    • /*
    • SQL语句中 @ 字符开始的命名参数使用参数表的名值对元素格式化,
    • SQL语句中 ? 或 ?? 占位符使用参数表的数组元素格式化,
    • 其中 ?? 格式化为标识符,其他占位符格式化为参数值。
    • ??占位符用于格式化的参数如果是一个表,表中的键值对以 AND 为分隔符,并将数组值转换为IN语句。
    • */
    • if(result){
    • mainForm.editResult.print( result.姓名 );
    • mainForm.editResult.print( result.工作地点 );
    • mainForm.editResult.print( result.时间 );
    • }
    • }
    • mainForm.show();
    • win.loopMessage();


    最新回复 (8)
    • 少先生 2023-8-10
      0 2

      没有大佬解惑吗

    • 光庆 2023-8-10
      0 3
      你把问题简单化一下,这样很难明白你的意思
    • 小肥羊 2023-8-10
      0 4
      切换概念一般指切换数据库,同一数据库中,表查询不用切换,直接sql中指定要查询的表名即可,select * from [工作日志表2]。。。这样就可以了
    • tanzh 2023-8-10
      0 5
      当mainForm.edit.text = "工作表日志表2"时,将mainForm.edit.text作为参数传递给查询语句作为table表名
    • 少先生 2023-8-10
      0 6
      5楼的大佬,这个把mainForm.edit.text作为参数传递给查询语句作为table表名,我现在就是这一步可足了,我不知道怎么传递进var result = db.stepQuery("SELECT * FROM [工作日志表] WHERE ??"这个里面
    • 少先生 2023-8-10
      0 7
      5楼的大佬,这个把mainForm.edit.text作为参数传递给查询语句作为table表名,我现在就是这一步卡住了,我不知道怎么传递进var result = db.stepQuery("SELECT * FROM [工作日志表] WHERE ??"这个里面
    • 光庆 2023-8-10
      0 8
      var result = db.stepQuery("SELECT * FROM ["+mainForm.edit.text+"] WHERE ??"
    • 少先生 2023-8-10
      0 9

      可以了,感谢光庆大佬

    返回