怎样在Windows窗体程序中使用Entity Framework进行数据的增删?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在Windows窗体程序中使用Entity Framework进行数据的增删?相关的知识,希望对你有一定的参考价值。
我用 C#开发Windows窗体应用程序,在一个窗体中使用了DataGridView控件显示数据,把DataGridView控件与EF的查询结果集绑定,数据正常显示(如下图),也能修改(直接在DataGridView中修改然后保存即可,保存按钮的Click事件调用的是DbContext.Savechanges()),但增加和删除不能实现,点增加按钮虽在DataGridView中增加一行,但点保存按钮后,数据保存不仅数据库,同样,点删除按钮删除一行后,数据库也无变化。也许是数据绑定不对。本人是新手,希望高手指点怎样在Windows窗体中使用EF通过DataGridView增删数据。
参考技术A 端点调试一下在删除或者添加一行之后,后台中的数据列表有没有多或者少,然后调用savechange运行 CMD 和 ffmpeg Windows 窗体
【中文标题】运行 CMD 和 ffmpeg Windows 窗体【英文标题】:Run CMD and ffmpeg Windows Forms 【发布时间】:2022-01-18 15:32:46 【问题描述】:我正在尝试在我的 Windows 窗体应用程序中使用 ffmpeg,并且我是苹果来转换单个文件,但现在我正在尝试选择整个文件夹并运行 cmd ffmpeg。
我已经使用 cmd 进行了测试,下面的行会自动转换整个文件夹中的所有文件,但我不知道如何在我的 winforms 应用程序中实现这一点。任何人都知道如何将其添加到我的代码中?
for %i in (*.flv) do ffmpeg -i "%i" "%~ni.mkv"
这是我在不选择 PATH 的情况下转换单个文件时使用的示例代码:
// Using OpenFileDialog to get Folder Path
private void button1_Click(object sender, EventArgs e)
openFileDialog1.ValidateNames = false;
openFileDialog1.CheckFileExists = false;
openFileDialog1.CheckPathExists = true;
openFileDialog1.FileName = "Folder Selection.";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
string folderPath = Path.GetDirectoryName(openFileDialog1.FileName);
textBox1.Text = folderPath;
private void buttonConvert_Click(object sender, EventArgs e)
string output = $"output--DateTime.Now.Ticks.mkv";
LaunchCommandLineApp("sample.flv", output);
Process.Start("explorer.exe", "/select, \"" + output + "\"");
private void LaunchCommandLineApp(string input, string outputFile)
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "ffmpeg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"-i input outputFile";
using (Process exeProcess = Process.Start(startInfo))
exeProcess.WaitForExit();
【问题讨论】:
您期望的服务究竟是什么?您是否希望这个社区中的某个人免费为您编写一些代码?请确保您使用tour,然后通读How to Ask 的页面,以更好地了解您注册的网站是如何工作的。一般来说,我们希望您编写自己的代码,并且当它无法完成编写的任务时,没有任何问题,您会发布该代码,并突出显示问题,以便我们可以重现它,然后提供帮助你在修理它。 在我看来你已经完成了困难的部分,你现在只需要使用Directory.GetFiles
。您的问题可以改写为“如何使用 c# 获取目录中的文件?”。你已经有一个答案告诉你如何使用它。
【参考方案1】:
您编写的 DOS 命令是一个重复调用 FFMpeg 命令的 for 循环。在 C# 中执行相同的操作,例如:
foreach(var file in Directory.GetFiles(textBox1.Text, "*.flv")) //textBox1.Text == the folder path
LaunchCommandLineApp(file, Path.ChangeExtension(file, "mkv"));
如果您的路径有空格,您可能需要考虑在命令中加上引号 - 您的 DOS 命令有空格,而您的 C# 似乎没有空格。
考虑$@"-i ""input"" ""outputFile"""
【讨论】:
以上是关于怎样在Windows窗体程序中使用Entity Framework进行数据的增删?的主要内容,如果未能解决你的问题,请参考以下文章
我可以将 Entity Framework Core 6 与 Windows 窗体一起使用(使用 .NET 5)吗?