【问题标题】:Reading and storing data, 50 text box in c# by function [closed]通过函数读取和存储数据,C#中的50个文本框[关闭]
【发布时间】:2015-11-27 05:42:29
【问题描述】:

我有一个 C# 项目,要获取大约 50 个文本框,然后存储在数据库中。 这是使用函数完成的。 唯一的问题是我正在发挥作用。 我谢谢你。 需要做什么。

x8 = int.Parse( txtt10x100t.Text);
                if (x8 > 0)
                {
                    SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=database;Integrated Security=True");
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = cn;
                    cmd.CommandText = "INSERT INTO tbltable " + "(id, name, value , date, iid) " + "VALUES(@id, @name, @value, @date, @iid )";
                    cmd.Parameters.AddWithValue("@id", v2);
                    cmd.Parameters.AddWithValue("@name", "10*100");
                    cmd.Parameters.AddWithValue("@value", x8);
                    cmd.Parameters.AddWithValue("@date", tarikh);
                    cmd.Parameters.AddWithValue("@iid", xxiid);
                    cn.Open();
                    cmd.ExecuteNonQuery();
                    cn.Close();
 x9 = int.Parse(txtt10x150t.Text);
                    if (x9 > 0)
                    {
                        SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=dbdatabase;Integrated Security=True");
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection = cn;
                        cmd.CommandText = "INSERT INTO tbltable " + "(id, name, value, date, iid) " + "VALUES(@id, @name, @value, @date, @iid )";
                        cmd.Parameters.AddWithValue("@id", v2);
                        cmd.Parameters.AddWithValue("@name", "10*150");
                        cmd.Parameters.AddWithValue("@value", x9);
                        cmd.Parameters.AddWithValue("@date", tarikh);
                        cmd.Parameters.AddWithValue("@iid", xxiid);
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
x10 = int.Parse(txtt15x100t.Text);
                    if (x10 > 0)
                    {
                        SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=dbdatabase;Integrated Security=True");
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection = cn;
                        cmd.CommandText = "INSERT INTO tbltable " + "(id, name, value, date, iid) " + "VALUES(@id, @name, @value, @date, @iid )";
                        cmd.Parameters.AddWithValue("@id", v2);
                        cmd.Parameters.AddWithValue("@name", "15*100");
                        cmd.Parameters.AddWithValue("@value", x10);
                        cmd.Parameters.AddWithValue("@date", tarikh);
                        cmd.Parameters.AddWithValue("@iid", xxiid);
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();

// , ete ....

【问题讨论】:

  • 你现在有什么问题?
  • 所有信息文本框都应该以相同的方式存储。必须为每个文本框编写它。需要的功能是保存所有文本框。函数要怎么写?
  • 虽然 Microsoft Translator 等在线翻译工具运行良好,但如果您不能用英语表达自己,您应该在发布之前使用这些工具自己翻译文本。外语 cmets 的受众非常有限,不符合 Stack Overflow 上使用的英语标准。

标签: c#


【解决方案1】:

您不是在问如何将代码转换为函数,是吗?

如果是这样,请学习编码。同时,函数如下所示:

int MyFunc(string txtboxtext)
{
    var x8 = int.Parse(txtboxtext);
                    if (x8 > 0)
                    {
                        SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=database;Integrated Security=True");
                        SqlCommand cmd = new SqlCommand();
                        cmd.Connection = cn;
                        cmd.CommandText = "INSERT INTO tbltable " + "(id, name, value , date, iid) " + "VALUES(@id, @name, @value, @date, @iid )";
                        cmd.Parameters.AddWithValue("@id", v2);
                        cmd.Parameters.AddWithValue("@name", "10*100");
                        cmd.Parameters.AddWithValue("@value", x8);
                        cmd.Parameters.AddWithValue("@date", tarikh);
                        cmd.Parameters.AddWithValue("@iid", xxiid);
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
                   }
    }

但是您根本不应该使用该代码,因为您不应该为每个数据库访问打开一个连接。并且该函数需要有其他变量,如 tarikh 等作为参数传递。我不知道它们的类型,所以我无法将它们包含在参数列表中。即使你这样做了,最好创建一个类来将这些变量分组到一个有意义的单元中。

我错过了什么吗?

【讨论】:

  • 是的,你做到了:P,@name 也是一个值 ;-)
  • 哦,对了。我应该在上面的列表中添加“10 * 100”是一个常量,并且可以插入到命令文本中。但是接下来我们将不得不讨论在数据库中存储常量的含义。
猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
相关资源
最近更新 更多