C#winForm搜索表单

时间:2017-07-05 12:16:23

标签: c# visual-studio-2013

我有一个项目,在一个表单上是数据库搜索参数,其中SELECTname,password等来自databasename,其中value1 ='“+ text.text +”'等我需要将结果传递给另一个文本框中的其他文本框表格,我该怎么做

这是搜索表单设计:

This is the search form design

这是我要显示搜索表单结果的表单:

This is the form where i what to display the result of search form

这是我在表单1中使用的代码

con.Open();
cmd = new SqlCommand("SELECT  surname, firstname, Sex, phone, address, dob, nameofdoctor, doctorsreport, diagnosis, drugsprescribed  FROM dbo.patient WHERE cardnumber='" + textBox1.Text + "' and dateofadmission='" + dateTimePicker1.Text + "' and dateofdischarge='" + dateTimePicker1.Text + "'", con);
sda = new SqlDataAdapter(cmd);
cmd.ExecuteNonQuery();
DataTable ds = new DataTable();
sda.Fill(ds);
Records rec = new Records(value, value1, value2, value3, value4, value5, value6, value7, value8, value9);
rec.ShowDialog();

1 个答案:

答案 0 :(得分:0)

首先,你probalby不应该以这种方式构造你的sql语句,它很容易进行sql注入,尝试使用Sql参数(https://www.dotnetperls.com/sqlparameter

对于你问题的主要部分,你需要一个对该表单的引用和一个允许设置文本框的方法,考虑你有执行sql语句的formA和textbox textboxB所在的formB(你想要的那个)要设置),你需要在formB上为文本框实现一个公共setter,如

        public void SetTextboxB(string txt)
    {
        textboxB.Text = txt;
    }

现在你可以调用formB.SetTextboxB(“你想要的文本”)

如果您不确定在何处传递表单引用,则可以使用 Application.OpenForms https://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms.aspx)在formA中查找formB

考虑到formB已经在运行

var b = (Application.OpenForms["formB"] as formB)
b.SetTextboxB("Desired Text");