小编Jos*_* C.的帖子

C#数据连接最佳实践?

好的,所以这是那种自以为是的主题之一,但根据您的知识,意见和当前实践,设置以下方案的最佳方法是什么?

我正在构建一个广泛的数据输入应用程序,并且我的意思是我只有基本设置,其中包含大约15-25%的整体程序,我有大约15个部分设置的表单.(他们仍然需要工作)我正在使用SQL Compact 4.0作为我的后端数据库,我不需要更广泛的数据库,因为我没有存储MMO的数据,目前这只是一个本地应用程序.

我希望能够将其设置为显示为单个窗口,只是根据菜单系统更改为各种不同的页面,但我似乎无法找到关于如何实现的良好教程,所以如果有谁知道,请赐教.

然而,问题是如何连接到数据库.我正在使用2个SQLCE数据库,一个存储基于服务和人员的常量数据,另一个存储不断变化的数据或基于第一个数据库输入的新数据.我已经看到了很多不同的方法,如何设置它,目前我正在使用一个我有一个所有其他形式继承的BaseForm.在BaseForm中,我有许多表单共有的方法和变量,从而最大限度地减少了重复的代码量.

这包括两个数据库的连接字符串,以及打开与其中任何一个数据库的连接的2个方法.像这样:

internal SqlCeConnection dataConn = new SqlCeConnection(@"Data Source = |DataDirectory|\opi_data.sdf");
internal SqlCeConnection logConn = new SqlCeConnection(@"Data Source = |DataDirectory|\opi_logs.sdf");
internal SqlCeCommand command;

internal void openDataConnection() // Opens a connection to the data tables 
        {
            try
            {
                if(dataConn.State == ConnectionState.Closed)
                    dataConn.Open();
            }
            catch(SqlCeException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        internal void openLogConnection() // Opens a connection to the log tables
        {
            try
            {
                if(logConn.State == ConnectionState.Closed)
                    logConn.Open();
            }
            catch (SqlCeException ex)
            {
                MessageBox.Show(ex.Message, …
Run Code Online (Sandbox Code Playgroud)

c# sql database connection

21
推荐指数
1
解决办法
3万
查看次数

解析SQL查询时出错

好的,我只是想把最后一条记录输入表中并从中获取一个特定的值.我一直在网上寻找一个可行的方法,以满足我的需求,但我尝试的一切都很短....

我一直在

解析查询时出错.[令牌行号=,令牌行偏移=,令牌错误=]

我最常见的查询是使用ORDER BY语句.

我的表格的键是"索引"而不是"ID"; 我一直在尝试简单的查询

SELECT *
FROM   Departments
WHERE  Valid = @validation
ORDER  BY Index ASC 
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,说"令牌错误=索引"

现在我有一个我需要运行的查询,它选择表中的最后一条记录并获取它的JobID,它与Index不同.所以我尝试了我的尝试和真实

SELECT TOP (1) *
FROM   TableName
ORDER  BY Index DESC 
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我也可以获得其他数据.但我得到相同的错误代码.

所以我试过了

SELECT MAX(Index)
FROM   TableName 
Run Code Online (Sandbox Code Playgroud)

同样的错误.

无论我尝试什么,它都不想通过索引选择,它被设置为主键,自动增量等....

c# sql sql-server-ce

2
推荐指数
1
解决办法
855
查看次数

标签 统计

c# ×2

sql ×2

connection ×1

database ×1

sql-server-ce ×1