2013-09-03 4 views
7

मैं SQL सर्वर डेटाबेस से लिंक करने वाले अनुप्रयोगों को विकसित करने के लिए स्वयं को मूल सी # पढ़ रहा हूं। मैं एक बहुत ही बुनियादी अनुप्रयोग बना रहा हूं जो मुझे 2 मानों को एक फॉर्म टाइप करने की अनुमति देता है और बटन पर मूल्य डालें क्लिक करें। मैं एक अलग बटन भी चाहता हूं जो मुझे कंसोलविंडो में तालिका से सभी डेटा दिखाता है। सम्मिलन पूरी तरह से काम करता है, अब मेरा एकमात्र मुद्दा यह है कि जब मैं शोडाटा बटन पर क्लिक करता हूं तो कुछ भी नहीं होता है, कोई विचार?विंडोज़ में Console.WriteLine() का उपयोग कैसे करें प्रपत्र

मैं कल्पना कर सकता हूं कि यह कुछ मूलभूत होगा लेकिन जैसा कि मैंने कहा है कि मैं अभी भी सीख रहा हूं।

public partial class InsertNames : Form 
{ 
    public InsertNames() 
    { 
     InitializeComponent(); 
    } 

    private SqlConnection thisConnection = new SqlConnection("Data Source=(localdb)\\V11.0;database=Dev"); 

    private void FirstName_TextChanged(object sender, EventArgs e) 
    { 
     string firstName = FirstName.Text; 
    } 

    private void LastName_TextChanged(object sender, EventArgs e) 
    { 
     string lastName = LastName.Text; 
    } 

    private void Insert_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      thisConnection.Open(); 
      SqlCommand insertCommand = thisConnection.CreateCommand(); 
      insertCommand.CommandText = "INSERT INTO Names (FirstName,LastName) Values (@FirstName, @LastName)"; 
      insertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar, 50).Value = FirstName.Text; 
      insertCommand.Parameters.Add("@LastName", SqlDbType.VarChar, 50).Value = LastName.Text; 
      insertCommand.ExecuteNonQuery(); 

      Console.WriteLine(insertCommand); 

      thisConnection.Close(); 
     } 
     catch (SqlException excep) 
     { 
      Console.WriteLine(excep.Message); 
     } 
    } 

    private void ShowData_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      thisConnection.Open(); 

      SqlDataReader myReader = null; 
      SqlCommand selectCommand = new SqlCommand("Select * from Names", thisConnection); 

      myReader = selectCommand.ExecuteReader(); 
      while (myReader.Read()) 
      { 
       Console.WriteLine(myReader["FirstName"].ToString()); 
       Console.WriteLine(myReader["LastName"].ToString()); 
      } 

      thisConnection.Close(); 
     } 
     catch (SqlException excep) 
     { 
      Console.WriteLine(excep.Message); 
     } 
    } 
} 
+0

'आउटपुटविंडो' खोलें और देखें कि आपका डेटा वहां आउटपुट किया जाएगा। आप इसके अलावा अन्य क्या उम्मीद करते हैं? –

+0

स्टैक ओवरव्लो में आपका स्वागत है। आपका शीर्षक संपादित किया गया है। कृपया देखें, ["प्रश्नों में उनके शीर्षक में" टैग "शामिल होना चाहिए?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), जहां सर्वसम्मति "नहीं, उन्हें नहीं करना चाहिए"। – Chris

उत्तर

17

Console.WriteLine कमांड केवल कंसोल एप्लिकेशन प्रकार में काम कर रहा है। इसलिए विंडोज ऐप का उपयोग करने से आवश्यक आउटपुट प्रदर्शित नहीं होता है, ऐसा लगता है कि आपका एप्लीकेशन विंडोज फॉर्म एप्लीकेशन है।

यदि आप Console.WriteLine का उपयोग कर कंसोल विंडो पर शो आउटपुट चाहते हैं तो विंडोज़ फॉर्म एप्लिकेशन के साथ इस प्रॉपर्टी को जोड़ने और इसे मुख्य फॉर्म कंस्ट्रक्टर से कॉल करने की आवश्यकता है। तो यह कंसोल के साथ भी खुल जाएगा।

 public InsertNames() 
    { 
     AllocConsole(); 
     InitializeComponent(); 
    } 

     [System.Runtime.InteropServices.DllImport("kernel32.dll")] 
     private static extern bool AllocConsole(); 

या

आप कंसोल के रूप में आवेदन प्रकार सेट कर सकते परियोजना सेटिंग्स में। फिर आपको कंसोल और फॉर्म भी मिलेगा।

+0

एक पूर्ण इलाज किया, बहुत बहुत धन्यवाद। – jeastham1993

+2

बढ़िया! आप इस लाइन को जोड़ सकते हैं: AllocConsole(); कहीं भी। जब कोड निष्पादित किया जाएगा तो कंसोल पॉप आउट हो जाएगा। जब तक आप इसे बंद नहीं करेंगे तब तक यह खुला रहेगा (लेकिन इसे बंद करने से यह एप्लिकेशन बंद हो जाएगा)। इसके लिए धन्यवाद! – SRO

संबंधित मुद्दे