c# - 在 C# 中从 MySQL 数据库复制粘贴到另一个程序的表单

标签 c# mysql winforms copy-paste data-transfer

示例场景:从 Microsoft Word 复制一行时,它会被复制到剪贴板,并且文本也可以粘贴到记事本和其他内容。

我的问题:我想开发一个可以从 MySQL 数据库复制元组的应用程序。从复制的元组中,每一列的数据应存储在一个数组中,并且在粘贴到另一个应用程序的文本框时,必须为每个文本框粘贴一个数据,直到元组末尾。

即应用程序有一个包含 5 个文本框的表单:textbox1、textbox2、textbox3、textbox4、textbox5,数据库表有 5 列,其中存储了数据。

设计的应用程序将显示数据库中的数据,并且在复制元组时,它必须以 a[0]、a[1]、a[2]、a[3]、a[4] 的形式存储在数组中。然后,将其粘贴到具有这 5 个文本框的另一个应用程序时,只有 a[0] 的数据必须存储到 textbox1,只有 a[1] 的数据必须存储到 textbox2,依此类推。

这能实现吗?如果可以的话,这个问题怎么解决。如果我问得太多,请原谅我。

问候, 尼朋释迦

最佳答案

嗯,你显然不能让你的用户直接与 mySql 交互,但我想这不是你的意思?

你可以控制两端,源端和目标端吗?如果是这样,您所需要做的就是决定可以放入剪贴板并再次检索的格式

这是一个帮助您入门的简单示例。

仅用于演示,它使用 ListView以及Ctl-C将每个项目的文本复制到 Clipboard ,用垂直标签将它们分开。

根据 Ctl-V在文本框中,所有这些字符串都被再次拆分,并且每个字符串都插入到单独的行中。

private void lv_files_KeyDown(object sender, KeyEventArgs e)
{

    if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control)
    {
        string data = "";
        foreach (ListViewItem lvi in lv_files.Items)  data += lvi.Text + "\v";
        Clipboard.SetData(DataFormats.Text, data); ;
        e.Handled = true;
    }
}

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
    {
        string data = Clipboard.GetData(DataFormats.Text).ToString();
        var parts = data.Split('\v');
        foreach (string p in parts) textBox1.Text += p + "\r\n";
        Clipboard.Clear();
        e.Handled = true;
    }
}

这应该通过以下功能进行扩展:

  • 也照顾一下Shift-InsertCtrl-Insert
  • 根据您的实际问题进行调整:
    • 而不是 ListView使用你的来源;您无法与 DataTable 进行用户交互,所以你需要一些替代控制。当然是DataGridView我想到了,但它确实可能是一个可以集中注意力并聆听 KeyDown 的东西。
    • 而不是一行 TextBox 中的几行您应该将数据放入目标 TextBoxes ;也许你可以把它们放在 List<TextBox> 中使访问它们变得简单..

关于c# - 在 C# 中从 MySQL 数据库复制粘贴到另一个程序的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958535/

相关文章:

c# - 如何在按住鼠标的情况下移动表单?

mysql - 根据价格货币不同的价格要求

java - 线程 "main"com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : You have an error in your SQL syntax 中出现异常

.net - 支持视觉风格的控制按钮背景颜色

c# - MVC Action 属性测试

c# - 更改发送给客户端的文件名?

c# - .NET Core 中的 'System.Diagnostics' 和 nix*es 上的 Mono 中不存在“事件”命名空间

mysql - 如何编写存储在 MySQL 中的过程以导出带有 'dynamic path' 的表?

c# - 通过处理 NC_HITTEST 在移动控件时设置 SizeAll 光标

c# - 更改 XtraGrid 中的数据源