c# - SQL 中的语句如何与 C# 相关联
问题描述
我创建了一个数据库,并将它与 Visual Studio 中的 Windows 窗体应用程序链接起来,它是用 Visual C# 编写的。我很想知道我在 windows 窗体应用程序中添加的按钮是否与用 SQL 编写的语句相对应。
我需要在 SQL 或 C# 的后端实现代码,还是两者之一。
解决方案
您可以尝试使用名为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
,而是TableAdapter
EntityFramework在后台为用户创建的。
推荐阅读
- php - 如何在 laravel 的表单动作中传递一个值
- javascript - 尝试显示多个 html 页面时出错(快速)
- python - 异常值:“NoneType”对象没有“添加”属性,类别名称不显示 Django
- sql - 通过在oracle中将文本分解为固定长度后将一行拆分为多行
- sql-server - SQL:如何拥有具有自动 SET 行为的非唯一“身份列”?
- python - Python烧瓶将文件参数从一种形式发送到另一种形式
- python - 如何引用 __init__ 超类中定义的函数
- python - Sqlalchemy add_all() 忽略重复键 IntegrityError
- daemon - 如何使用 systemd 服务以守护程序模式运行进程?
- sql-server - 通过 VBA 连接 SQL Server 时出错