从MySQL数据库复制粘贴到另一个程序';s在C#中的形式
本文关键字:复制 数据库 MySQL 程序 另一个 | 更新日期: 2023-09-27 18:23:58
示例场景:从Microsoft Word复制一行时,它会被复制到剪贴板,文本也可以粘贴到记事本和其他人。
我的问题是:我想开发一个可以从MySQL数据库复制元组的应用程序。从复制的元组中,每列的数据都应存储在一个数组中,在粘贴到另一个应用程序的文本框时,数据必须每个文本框粘贴一个数据,直到元组结束。
即,应用程序有一个包含5个文本框的表单:文本框1、文本框2、文本框3、文本框4、文本框5,数据库表有5列存储数据。
设计的应用程序将显示数据库中的数据,在复制元组时,它必须以[0]、a[1]、a[2]、a[3]、a[4]的形式存储在数组中。然后,在将其粘贴到具有这5个文本框的另一个应用程序时,只有[0]的数据必须存储到文本框1,只有[1]的数据必须保存到文本框2,依此类推。
这能实现吗?如果可以的话,这个问题怎么解决呢。如果我要求太多,请原谅。
谨致问候,Nipun Shakya
很明显,你不能让你的用户直接与mySql交互,但我想这不是你的意思?
你可以控制两端,源和目标?如果是这样的话,你所需要做的就是决定一种可以放入剪贴板并再次检索的格式
下面是一个简单的示例,让您开始学习。
仅在降级时,它使用ListView
,在Ctl-C
时,将每个项目的文本复制到Clipboard
,用垂直选项卡分隔。
当TextBox中出现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-Insert
和Ctrl-Insert
- 根据您的实际问题进行调整:
- 使用您的源代码,而不是
ListView
;您不能与DataTable
进行用户交互,因此您需要一些代理控制。当然,脑海中会浮现一个DataGridView
,但它确实可能是一个可以集中注意力并听KeyDown的东西 - 应该将数据放入目标
TextBoxes
,而不是一个TextBox
的几行;也许你可以把它们放在List<TextBox>
中,使访问它们变得简单
- 使用您的源代码,而不是