gpt4 book ai didi

c# - 在 SQLite 数据库中获取文本框输入有效。但第二列不起作用。如何解决这个问题? (系统.Web.UI.WebControls.TextBox)

转载 作者:行者123 更新时间:2023-11-29 10:50:46 24 4
gpt4 key购买 nike

我正在开展一个学校项目,人们可以通过在左栏中输入单词并在右栏中输入翻译来测试自己的知识。该数据必须保存在 SQLite 数据库中。

例如,用户在左侧文本框中键入单词:hello,在右侧文本框中键入:bonjour(法语中的“hello”)。然后我想将数据保存到 SQLite 数据库中,如下所示:

ID:1词:你好翻译:你好

enter image description here

我设法让它与以下脚本一起工作:

string veld1 = txtVeld1.Text;
string veld1v2 = txtVeld1v2.Text;
string veld2 = txtVeld2.Text;
string veld2v2 = txtVeld2v2.Text;
string veld3 = txtVeld3.Text;
string veld3v2 = txtVeld3v2.Text;
string veld4 = txtVeld4.Text;
string veld4v2 = txtVeld4v2.Text;
string veld5 = txtVeld5.Text;
string veld5v2 = txtVeld5v2.Text;
string veld6 = txtVeld6.Text;
string veld6v2 = txtVeld6v2.Text;
conn.Open();

cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("@veld1", veld1);
cmd.Parameters.AddWithValue("@veld1v2", txtVeld1v2);
cmd.Parameters.AddWithValue("@veld2", veld2);
cmd.Parameters.AddWithValue("@veld2v2", txtVeld2v2);
cmd.Parameters.AddWithValue("@veld3", veld3);
cmd.Parameters.AddWithValue("@veld3v2", txtVeld3v2);
cmd.Parameters.AddWithValue("@veld4", veld4);
cmd.Parameters.AddWithValue("@veld4v2", txtVeld4v2);
cmd.Parameters.AddWithValue("@veld5", veld5);
cmd.Parameters.AddWithValue("@veld5v2", txtVeld5v2);
cmd.Parameters.AddWithValue("@veld6", veld6);
cmd.Parameters.AddWithValue("@veld6v2", txtVeld6v2);
cmd.CommandText = "INSERT INTO tboverhoren (woord, vertaling) SELECT @veld1 , @veld1v2 UNION ALL SELECT @veld2 , @veld2v2 UNION ALL SELECT @veld3 , @veld3v2 UNION ALL SELECT @veld4 , @veld4v2 UNION ALL SELECT @veld5 , @veld5v2 UNION ALL SELECT @veld6 , @veld6v2";

(我使用 UNION ALL SELECT 语句,因为我想一次插入多行)但不幸的是,只有第一列确实从文本框中获取输入。第二列仅获取:“System.Web.UI.WebControls.TextBox”作为数据。

enter image description here

我做错了什么?我搜索了 STACK Overflow,但只发现我必须声明 Textbox.Text 函数,我这样做了并使用了第一列。我发现的其他解决方案不适用于 SQLite...

非常感谢您的帮助!

亲切的问候,

埃利亚斯·格鲁特

最佳答案

您已经通过访问 Text 属性从文本框中提取字符串,例如:

string veld1v2 = txtVeld1v2.Text;

但是当你实际上是他们时,你传递文本框本身,而不是使用声明的变量:

cmd.Parameters.AddWithValue("@veld1v2", txtVeld1v2);

数据框架发现文本框不是它理解的类型,因此对其调用ToString(),默认情况下返回类型名称,这就是您在数据库中看到它的原因。

您需要做的就是更改这些行以使用变量:

cmd.Parameters.AddWithValue("@veld1v2", veld1v2); // etc

关于c# - 在 SQLite 数据库中获取文本框输入有效。但第二列不起作用。如何解决这个问题? (系统.Web.UI.WebControls.TextBox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com