当前位置:数据库 > SQLite >>

.Net用的SQLite

数据库冒似国内的游戏客户端用得比较少, 我见的都是用excel自己转换的...

其实一直想在引擎里加个数据库, 但是这个跟游戏逻辑比较紧密, 就没搞...

不过, 可以确定的是, 脱离服务器运行的数据库最好的选择应该是SQLite

在用.Net做工具时正好要用, 于是查了一下, 找到两种解决方案:

sqlite-net
小巧, 一个cs文件, 一个native dll(C++也可以调用)
接口清晰, 基本上一看就懂, 好学
支持LINQ, 虽小却功能一个不少
相当于原生sqlite c api的一个包装吧
System.Data.SQLite
通过ADO.NET的方式访问
可以与VS的Designer集成, 这样可以省去一个数据编辑器
对于使用过ADO.NET的人来说, 很快就可以上手
如果以后改用其它数据库(如MySQL), 可以不改动代码
把Northwind的数据库进来做了一个WPF的数据绑定DEMO:

\

 

<DockPanel> 
    <ListBox Name="listCategory" ItemsSource="{Binding}" MinWidth="100" SelectedIndex="0"> 
        <ListBox.ItemTemplate> 
            <DataTemplate> 
                <TextBlock Text="{Binding CategoryName}"></TextBlock> 
            </DataTemplate> 
        </ListBox.ItemTemplate> 
    </ListBox> 
    <StackPanel> 
        <TextBox Text="{Binding SelectedItem.CategoryName, ElementName=listCategory}"></TextBox> 
        <TextBox Text="{Binding SelectedItem.Description, ElementName=listCategory}"></TextBox> 
        <Image Source="{Binding SelectedItem.Picture, ElementName=listCategory}"></Image> 
    </StackPanel> 
</DockPanel> 
        <DockPanel>
            <ListBox Name="listCategory" ItemsSource="{Binding}" MinWidth="100" SelectedIndex="0">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding CategoryName}"></TextBlock>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
            <StackPanel>
                <TextBox Text="{Binding SelectedItem.CategoryName, ElementName=listCategory}"></TextBox>
                <TextBox Text="{Binding SelectedItem.Description, ElementName=listCategory}"></TextBox>
                <Image Source="{Binding SelectedItem.Picture, ElementName=listCategory}"></Image>
            </StackPanel>
        </DockPanel>
 

如果追求功能强大与自动化, 可以选择后者.

前者的话需要自己去定义表格对应的class, 没有那么便利. 但是代码要简洁很多:

view plaincopy to clipboardprint?
var db = new SQLiteConnection("Database/Northwind.db3");  
var result = db.Query<Category>("select * from Categories");  
this.DataContext = result; 
            var db = new SQLiteConnection("Database/Northwind.db3");
            var result = db.Query<Category>("select * from Categories");
            this.DataContext = result;
 

对于没有怎么接触过ADO.NET的人来说, 这种直接的操作方式更好懂一些吧

补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,