我有一个项目,在一个表单上是数据库搜索参数,其中SELECTname,password等来自databasename,其中value1 ='“+ text.text +”'等我需要将结果传递给另一个文本框中的其他文本框表格,我该怎么做
这是搜索表单设计:
这是我要显示搜索表单结果的表单:
这是我在表单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();
答案 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");