首页 > 解决方案 > SQL 中的语句如何与 C# 相关联

问题描述

我创建了一个数据库,并将它与 Visual Studio 中的 Windows 窗体应用程序链接起来,它是用 Visual C# 编写的。我很想知道我在 windows 窗体应用程序中添加的按钮是否与用 SQL 编写的语句相对应。在此处输入图像描述

我需要在 SQL 或 C# 的后端实现代码,还是两者之一。

标签: c#mysql

解决方案


您可以尝试使用名为Entity Framework的东西,如果您右键单击项目名称并选择Manage NuGet packages可以安装它。

这将为您设置一个框架,这样您就不必编写任何将表单与数据库连接起来的 C# 代码。它很容易使用,因为它创建了表适配器,可以将数据库中的表连接到您的代码,例如:

var myTableAdapter = new myDatabase_TableAdapters.myTableTableAdapter();
System.Data.DataTable myDataTable = myTableAdapter.GetData();

现在,您在 DataTable 中拥有 SQL 数据库中的表中的数据,并且您将 TableAdapter 作为两者之间的连接。

假设您想从用户那里获取输入,那么对于我们的示例,考虑数据来自您的文本框,那么您可以执行以下操作:

string vehicleRegNum = vehicleRegNumTextBox.Text,
    make = makeTextBox.Text,
    engineSize = engineSizeTextBox.Text,
    dateReg = dateRegTextBox.Text,
    rentPerDay = rentPerDayTextBox.Text;
bool avail = availCheckBox.Checked;
myTableAdapter.Insert(vehicleRegNum, make, engineSize, dateReg, rentPerDay, avail);

这个.Insert会将这些数据添加到您的数据库中(这里我假设所有文本框都转到您数据库中的一个表中,并且顺序与我给它们的顺序相同)。

所以总的来说,

  • 在 NuGet 中获取实体框架设置
  • 从数据库中的表设置表适配器
  • 用用户输入更新它

附注:我总是喜欢在这些类型的表中添加用户和日期列,以便您可以使用:

string usr = System.Environment.UserName
var entryDate = System.DateTime.Now;

澄清:@DanRayson 在评论中向我指出,我应该更清楚myDatabase_TableAdapters。它不完全是TableAdapter,而是TableAdapterEntityFramework后台为用户创建的。


推荐阅读