完整的初学者,尝试构建我的第一个C#应用程序(带有表单和数据库文件),并希望就我应该从何处开始以及要考虑哪些选项提供经验丰富的意见。
好,所以我会尽量保持简短:
我是一个业余爱好者,我在MS Access中建立了很多东西,并在其中使用了VBA的各种方式。但是C#?全新的。
我可以理解语法上的微小差异,尤其是在声明变量等方面。
我意识到Access不是一个不错的数据库选择,因为它不是为多个用户构建的。我已经切换到Mysql,并在Localhost上成功创建了一个表,并获得了与文件的连接。
我使用了向导,因此,与其说我在代码中声明连接字符串,通过适配器传递的SQL语句等,不如说它们都是“那里”,这使我想到了问题1:
1:我应该维护使用连接向导,还是用代码构建所有功能对我来说功能更强大?
A:
此外,我还向其他用户阅读了有关数据库文件的问题,我大声疾呼说:“您应该尝试直接在数据库中查询数据,而不是从内存中查询数据”
现在,我可以有点猜测从内存中查询是在我们创建tableadapaters和fills并查询fill时?我说的对吗?
我想达到什么目的?
基本上,在该项目结束时,应用程序将首先检查是否已注册默认帐户。我打算通过有一个没有数据行的数据表来实现这一点。该应用程序将检查表中的数据,如果没有数据,则用户必须输入默认帐户。该帐户将存储在数据表中,因此,下次对其进行检查时,它将检测到一条记录,然后继续执行该应用程序。
请参阅下面的代码(错误和无效):
private void BtnSetDefault_Click(object sender, EventArgs e)
{
int countrows = 0;
//assign new table adapter with TempTable as temporary fill table
cosentinoDataSetTableAdapters.defaultaccountTableAdapter tempadapt = new cosentinoDataSetTableAdapters.defaultaccountTableAdapter();
cosentinoDataSet.defaultaccountDataTable temptable = new cosentinoDataSet.defaultaccountDataTable();
tempadapt.Fill(temptable);
temptable.Count = countrows;
}
}
来自VBA,我对需要发生的事情有一个想法,但不知道如何实现。我想初始化对数据行的计数。如果计数行保持为0值,则强制用户输入详细信息。但是在C#中,我不知道如何正确初始化计数?
最后,我应该这样吗?因为我通过事物的外观从内存中查询?我以前从未使用过LINQ。
感谢任何抽出宝贵时间来帮助的人和所有人:-)
如果这是您第一次尝试创建C#应用程序,那么我将非常简单。
如果您希望从数据库中获取数据表(我假设您有要查询的本地数据库),请使用以下方法进行简单选择:
internal DataTable FindTrusts()
{
ValidateEnvironment();
DataTable dt = new DataTable();
string selectStatement = @"SELECT * FROM Test ORDER BY TestId ASC";
SqlConn.Open();
SqlCommand cmd = new SqlCommand(selectStatement, SqlConn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
SqlConn.Close();
return dt;
}
我的ValidateEnvironment();当我必须将多个数据库连接在一起时,这只是我的个人偏爱。它看起来像这样。
public SqlConnection ValidateEnvironment()
{
SqlConn = new SqlConnection();
string hostName = System.Net.Dns.GetHostName();
setHost = ConfigurationManager.AppSettings["MyServerConfig"].ToString();
//Set our SqlConnection based on what was provided by host
SqlConn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[setHost].ConnectionString;
return SqlConn;
}
在我的App.Config中,我只是向SQL连接字符串输入一些文本
<add name="ProdConn" providerName="System.Data.SqlClient" connectionString="Data Source="Server";Initial Catalog="TheDatabaseName";Integrated Security=SSPI;MultipleActiveResultSets=true" />
我应该提一下您的连接,因为它是MYSQL,所以会有所不同。您可以使用
using MySql.Data.MySqlClient;
代替我上面的SqlConnection。
在解决该项目或良好的Udemy / Pluralsight / ect课程之前,我肯定会查看101个Youtube视频。
希望这应该使您了解如何开始!