Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions ConnectionSql.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
namespace TestWins.Model;

//dotnet add package MySql.Data
using MySql.Data.MySqlClient;

public class ConnectionSql
{
private readonly string _connectionString = "server=localhost;database=student;uid=root;pwd=root";
private MySqlConnection _conn;

public MySqlConnection connectSql()
{
return new MySqlConnection(_connectionString);

}
public MySqlConnection GetOpenConnection()
{
try
{
var conn = new MySqlConnection(_connectionString);
conn.Open();
Console.WriteLine("Database connection successful");
return conn;
}
catch (MySqlException ex)
{
Console.WriteLine($"Database connection failed: {ex.Message}");
return null;
}
catch (Exception ex)
{
Console.WriteLine($"An unexpected error occurred: {ex.Message}");
return null;
}
}
Console.WriteLine("Connecting to DB");

_conn = new MySqlConnection(_connectionString);

Console.WriteLine(_conn == null ? "Datbase Connection Failed" : "Database connection successful");

return _conn;
}
}
78 changes: 78 additions & 0 deletions FixedConnectionSql.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
using MySql.Data.MySqlClient;
using TestWins.Model;

namespace TestWins.Repository
{
public class StudentRepository
{
private readonly FixedConnectionSql_db = new FixedConnectionSql();

public void Create(Student student)
{
using var conn = _db.connectSql();
conn.Open();

string query = "INSERT INTO students (name, age, course) VALUES (@name, @age, @course)";
using var cmd = new MySqlCommand(query, conn);

cmd.Parameters.AddWithValue("@name", student.Name);
cmd.Parameters.AddWithValue("@age", student.age);
cmd.Parameters.AddWithValue("@course", student.course);

cmd.ExecuteNonQuery();
}

public List<Studnent> GetAll()
{
var list = new List<Student>();

using var conn = _db.connectionSql();
conn.Open();

string query = "SELECT * FROM students";
using var cmd = new MySqlCommand(query, conn);
using var reader = cmd.ExecuteReader();

while(reader.Read())
{
list.Add(new Student
{
studentId = reader.GetInt32(0),
Name = reader.GetString(1),
age = reader.GetInt(32),
course = reader.GetString(3),
});
}
return list;
}

public void Update(Student student)
{
using var conn = _db.connectSql();
conn.Open();

string query = "UPDATE students SET name = @name, age = @age, course = @course WHERE id = @id";
using var cmd = new MySqlCommand(query, conn);

cmd.Parameters.AddWithValue("@id", student.studentId);
cmd.Parameters.AddWithValue("@name", student.Name);
cmd.Parameters.AddwithValue("@age", student.age);
cmd.Parameters.AddWithValue("@course", student.course);

cmd.ExecuteNonQuery();
}

public void Delete(int id)
{
using var conn = _db.connectSql();
conn.Open();

string query = "DELETE FROM students WHERE id = @id";
using var cmd = new MySqlCommand(query, conn);

cmd.Parameters.AddWithValue("@id", id);

cmd.ExecuteNonQuery();
}
}
}
64 changes: 64 additions & 0 deletions Form1.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
using System.Drawing.Text;
using TestWins.Controller;

namespace TestWins;

public partial class Form1 : Form
{

private readonly StudentController controller = new StudentController();
public Form1()
{
InitializeComponent();
loadData();
}

private void loadData()
{
dataGridView1.DataSource = controller.getAll();
}

private void btnAdd_Click(object sender, EventArgs e)
{
Students s = new Students()
{
Name = txtName.Text,
Age = int.Parse(txtAge.Text),
Course = txtCourse.Text
};
controller.insert(s);
loadData();
}

private void btnUpdate_Click(object sender, EventArgs e)
{
Students S = new Students()
{
Id = int.Parse(txtId.Text),
Name = txtName.Text,
Age = int.Parse(txtAge.Text),
Course = txtCourse.Text
};
controller.update(S);
loadData();
}

private void btnDelete_Click(object sender, EventArgs e)
{
int id = int.Parse(txtId.Text);
controller.delete(id);
loadData();
}

private void dataGridView1_CellClick(object sender, EventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
txtId.Text = row.Cells["Id"].Value.ToString();
txtName.Text = row.Cells["Name"].Value.ToString();
txtAge.Text = row.Cells["Age"].Value.ToString();
txtCourse.Text = row.Cells["Course"].Value.ToString();s
}
}
}