2017-07-05 1 views
-1

S'il vous plaît j'ai un projet et sur un formulaire est les paramètres de recherche de base de données où SELECT nom d'utilisateur, mot de passe etc du nom de base de données où valeur1 = '"+ text.text +"' etc et je dois transmettre les résultats zones de texte sous une autre forme, comment puis-je faireC# winForm Formulaire de recherche

Ceci est la conception de formulaire de recherche:

This is the search form design

C'est la forme où je quoi afficher le résultat de formulaire de recherche:

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

Ce code est i utilisé sous forme 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

Google "passer des données entre les formes" – Crowcoder

+1

possible doublon de [Passing Values ​​entre Windows Forms C#] (https://stackoverflow.com/questions/17836398/passing-values-between-windows-forms-c-sharp) – Alejandro

Répondre

0

d'abord, vous ne devriez pas probalby construire votre déclaration sql cette façon, il est très sujette à des injections SQL, essayez d'utiliser Sql Paramètres (https://www.dotnetperls.com/sqlparameter)

pour la partie principale de votre question, vous avez besoin d'une référence à ce formulaire et une méthode qui permet de définir la zone de texte, considérez que vous avez formA où l'instruction sql est exécutée et formB où réside la zone de texte textB (celle que vous voulez set), vous devrez implémenter un setter public pour la zone de texte sur le formulaireB comme

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

maintenant, vous pouvez appeler formB.SetTextboxB (« texte souhaité »)

si vous êtes incertain où passer les formulaires de référence Cann toujours utiliser Application.OpenForms (https://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms.aspx) pour trouver FormB dans forma

considérant FormB est déjà en cours

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