大数跨境
0
0

C# 外观漠式(填写数据库表)

C# 外观漠式(填写数据库表) 知识代码AI
2025-09-15
0
导读:填写数据库表利用这些派生类,可以编写一个类从数据文件读数据填到表中。

填写数据库表

利用这些派生类,可以编写一个类从数据文件读数据填到表中。该类一旦要读文件,就先构建 Stores和Foods数据库表:然后反复读取文件,查找商店关键字和食品关键字,并将它们加到Prices 类的数组表中,最后创建Prices表。

public classDataLoader
{
    private csFile vfile;
    private Stores store;
    private Foods fods;
    private Prices price;
    private DBase db;

    public DataLoader(DBase dtable)
    {
        db=dtable;
        store=new Store(db);
        fods=new Foods(db);
        price=new Prices(db);
    }

    public void Load(string dataFile)
    {
        string sline;
        int storekey,foodkey;
        StringTokenizer tok;

        store.delete();
        fods.delete();
        price.delete();

        vfile=new csFile(dataFile);
        vfile.OpenForRead();
        vfile=vfile.readLine();
        sline=vfile.readLine();
        while(sline!=null)
        {
            tok=new StriingTokenizer(sline,",");
            store.addTableValue(tok.nextToken());
            fods.addTableValue(tok.nexToken());
            sline=vfile.readLine();
        }
        vfile.close();

        store.makeTable();
        fods.makeTable();
        vfile.OpenForRead();
        sline=vifle.readLine();
        while(sline!=null)
        {
            tok=new StriingTokenizer(sline,",");
            storekey=store.getkey(tok.nextToken(),"StoreKey");
            foodkey=fods.getkey(tok.nextToken(),"Foodkey");
            price.addRow(storekey,foodkey,Convert.ToSingle(tok.nextToken());
            sline=vfile.readLine();
        }
        price.makeTable();
        vfile.close();
    }
}

最终的应用程序

程序一开始运行,就将一个食品价格表填到一个列表框中。

private void loadFoodTable()
{
    Foods fods=new Foods(db);
    fods.openTalbe();
    while(fods.asMoreElements())
    {
        lsFoods.Items.Add(fods.getValue());
    }
}

单击某个食品名,显示选中食品的价格。

private void lsFoods SelectedIndexChanged(object sender,System.EventArgs e)
{
    string food=lsFoods.Text;
    DataTable dtable=prc.getPrices(food);

    lsPrices.Items.Clear();
    foreach(DataRow rw in dtable.Rows)
    {
        lsPrices.Items.Add(rw["StoreName"].ToString().Trim()+"\t"+rw["Price"].ToString());
    }
}

Facade的效果

外观模式对客户屏蔽了复杂的子系统组件,并为一般用户提供了一个比较简单的程序设计接 口。但是,它并没有限制高级用户在需要时使用深层的、较复杂的类。

另外,Facade允许读者改变底层的子系统而不需要修改客户代码,降低了编译依赖性。


【声明】内容源于网络
0
0
知识代码AI
技术基底 机器视觉全栈 × 光学成像 × 图像处理算法 编程栈 C++/C#工业开发 | Python智能建模 工具链 Halcon/VisionPro工业部署 | PyTorch/TensorFlow模型炼金术 | 模型压缩&嵌入式移植
内容 366
粉丝 0
知识代码AI 技术基底 机器视觉全栈 × 光学成像 × 图像处理算法 编程栈 C++/C#工业开发 | Python智能建模 工具链 Halcon/VisionPro工业部署 | PyTorch/TensorFlow模型炼金术 | 模型压缩&嵌入式移植
总阅读94
粉丝0
内容366