Bagaimana cara mengambil data dari database SQL Server di C#?

Saya memiliki tabel database dengan 3 kolom nama depan, nama belakang dan usia. Dalam aplikasi Windows C # saya, saya memiliki 3 kotak teks yang disebut textbox1... Saya membuat konektivitas saya ke SQL Server saya menggunakan kode ini:

SqlConnection con = new SqlConnection("Data Source = .;
                                       Initial Catalog = domain;
                                       Integrated Security = True");
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tablename", con);

Saya ingin mendapatkan nilai dari database saya; jika saya memberikan nilai di textbox1 itu harus sesuai dengan nilai dalam database dan mengambil rincian lainnya ke kotak teks yang sesuai.

Saya mencoba metode ini tetapi tidak berhasil:

cmd.CommandText = "select * from tablename where firstname = '" + textBox1.Text + "' ";

Bagaimana saya bisa melakukannya untuk mengambil semua nilai lain ke kotak teks?

 public Person SomeMethod(string fName)
        {
            var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();

            Person matchingPerson = new Person();
            using (SqlConnection myConnection = new SqlConnection(con))
            {
                string oString = "Select * from Employees where FirstName=@fName";
                SqlCommand oCmd = new SqlCommand(oString, myConnection);
                oCmd.Parameters.AddWithValue("@Fname", fName);           
                myConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {    
                        matchingPerson.firstName = oReader["FirstName"].ToString();
                        matchingPerson.lastName = oReader["LastName"].ToString();                       
                    }

                    myConnection.Close();
                }               
            }
            return matchingPerson;
        }

Beberapa hal yang perlu diperhatikan di sini: Saya menggunakan kueri parametrisasi, yang membuat kode Anda lebih aman. Cara Anda membuat pernyataan pilih dengan bagian "where x = "+ Textbox.Text +""" membuka Anda untuk injeksi SQL.

Saya telah mengubahnya menjadi:

  "Select * from Employees where FirstName=@fName"
  oCmd.Parameters.AddWithValue("@fname", fName);  

Jadi apa yang akan dilakukan blok kode ini adalah:

Eksekusi pernyataan SQL terhadap database Anda, untuk melihat apakah ada nama depan yang cocok dengan yang Anda berikan. Jika ada, orang tersebut akan disimpan dalam objek Person (lihat di bawah ini dalam jawaban saya untuk kelasnya). Jika tidak ada kecocokan, properti dari objek Person akan menjadi null.

Jelas saya tidak tahu persis apa yang anda coba lakukan, jadi ada beberapa hal yang perlu diperhatikan: Ketika ada lebih dari 1 orang dengan nama yang cocok, hanya yang terakhir yang akan disimpan dan dikembalikan kepada Anda. Jika anda ingin dapat menyimpan data ini, anda dapat menambahkannya ke dalam List.

Person untuk membuatnya lebih bersih:

 public class Person
    {
            public string firstName { get; set; }
            public string lastName { get; set; }
    }

Sekarang untuk memanggil metode:

Person x = SomeMethod("John");

Anda kemudian dapat mengisi kotak teks Anda dengan nilai-nilai yang berasal dari objek Person seperti ini:

txtLastName.Text = x.LastName;
Komentar (5)

buat kelas yang disebut DbManager:

Class DbManager
{
 SqlConnection connection;
 SqlCommand command;

       public DbManager()
      {
        connection = new SqlConnection();
        connection.ConnectionString = @"Data Source=.     \SQLEXPRESS;AttachDbFilename=|DataDirectory|DatabaseName.mdf;Integrated Security=True;User Instance=True";
        command = new SqlCommand();
        command.Connection = connection;
        command.CommandType = CommandType.Text;
     } // constructor

 public bool GetUsersData(ref string lastname, ref string firstname, ref string age)
     {
        bool returnvalue = false;
        try
        {
            command.CommandText = "select * from TableName where firstname=@firstname and lastname=@lastname";
            command.Parameters.Add("firstname",SqlDbType.VarChar).Value = firstname;
 command.Parameters.Add("lastname",SqlDbType.VarChar).Value = lastname; 
            connection.Open();
            SqlDataReader reader= command.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {

                    lastname = reader.GetString(1);
                    firstname = reader.GetString(2);

                    age = reader.GetString(3);

                }
            }
            returnvalue = true;
        }
        catch
        { }
        finally
        {
            connection.Close();
        }
        return returnvalue;

    }

kemudian klik dua kali tombol retrieve (misal btnretrieve) pada form Anda dan masukkan kode berikut:

 private void btnretrieve_Click(object sender, EventArgs e)
    {
        try
        {
            string lastname = null;
            string firstname = null;
            string age = null;

            DbManager db = new DbManager();

            bool status = db.GetUsersData(ref surname, ref firstname, ref age);
                if (status)
                {
                txtlastname.Text = surname;
                txtfirstname.Text = firstname;
                txtAge.Text = age;       
               }
          }
       catch
          {

          }
   }
Komentar (1)

Untuk mengambil data dari database:

private SqlConnection Conn;
 private void CreateConnection()
 {
    string ConnStr =
    ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
    Conn = new SqlConnection(ConnStr);
 }
 public DataTable getData()
 {
 CreateConnection();
    string SqlString = "SELECT * FROM TableName WHERE SomeID = @SomeID;";
    SqlDataAdapter sda = new SqlDataAdapter(SqlString, Conn);
    DataTable dt = new DataTable();
    try
    {
        Conn.Open();
        sda.Fill(dt);
    }
    catch (SqlException se)
    {
        DBErLog.DbServLog(se, se.ToString());
    }
    finally
    {
        Conn.Close();
    }
    return dt;
}
Komentar (0)