Hello everybody,
I have a test coming up soon for a job that I have applied for. I have been working on having this so I have it all down and memorized so I know exactly what I am doing when it comes to the test.
I have to do CRUD in C# and MySQL. I was wondering if I could get some examples of the best ways I should do this. I will show what I have but I feel like there are better and more efficient ways of doing this, or actually an easier way. I have been struggling with bits and pieces but I would really like to see what people have as suggested for me.
I also have to display the data from the database on the program(listbox, grid, etc I can pick what control)
Example 1
public static bool UpdateActivity(Activity oldActivity,
Activity newActivity)
{
SqlCeConnection connection = Connection.GetConnection();
string updateStatement =
"UPDATE Activities SET " +
"ActivityName = @NewActivityName, " +
"Calories = @NewCalories " +
"WHERE ActivityName = @OldActivityName " +
"AND Calories = @OldCalories ";
SqlCeCommand updateCommand =
new SqlCeCommand(updateStatement, connection);
updateCommand.Parameters.AddWithValue(
"@NewActivityName", newActivity.ActivityName);
updateCommand.Parameters.AddWithValue(
"@NewCalories", newActivity.Calories);
updateCommand.Parameters.AddWithValue(
"@OldActivityName", oldActivity.ActivityName);
updateCommand.Parameters.AddWithValue(
"@OldCalories", oldActivity.Calories);
try
{
connection.Open();
int count = updateCommand.ExecuteNonQuery();
if (count > 0)
return true;
else
return false;
}
catch (SqlCeException ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
public static int AddActivity(Activity activity)
{
SqlCeConnection connection = Connection.GetConnection();
string insertStatement =
"INSERT Activities " +
"(ActivityName, Calories) " +
"VALUES (@ActivityName, @Calories)";
SqlCeCommand insertCommand =
new SqlCeCommand(insertStatement, connection);
insertCommand.Parameters.AddWithValue(
"@ActivityName", activity.ActivityName);
insertCommand.Parameters.AddWithValue(
"@Calories", activity.Calories);
try
{
connection.Open();
insertCommand.ExecuteNonQuery();
return activity.ActivityID;
}
catch (SqlCeException ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
public static List<Activity> GetActivities()
{
List<Activity> activities = new List<Activity>();
SqlCeConnection connection = Connection.GetConnection();
string selectStatement = "SELECT * " +
"FROM Activities ";
SqlCeCommand selectCommand =
new SqlCeCommand(selectStatement, connection);
try
{
connection.Open();
SqlCeDataReader activityReader = selectCommand.ExecuteReader();
while (activityReader.Read())
{
Activity activity = new Activity();
activity.ActivityID = (int)activityReader["ActivityID"];
activity.ActivityName = activityReader["ActivityName"].ToString();
activities.Add(activity);
}
activityReader.Close();
}
catch (SqlCeException ex)
{
throw ex;
}
finally
{
connection.Close();
}
return activities;
}
public static bool DeleteActivity(Activity activity)
{
SqlCeConnection connection = Connection.GetConnection();
string deleteStatement =
"DELETE FROM Activities " +
"WHERE ActivityName = @ActivityName " +
"AND Calories = @Calories " +
"AND ActivityID = @ActivityID";
SqlCeCommand deleteCommand =
new SqlCeCommand(deleteStatement, connection);
deleteCommand.Parameters.AddWithValue(
"@ActivityName", activity.ActivityName);
deleteCommand.Parameters.AddWithValue(
"@Calories", activity.Calories);
deleteCommand.Parameters.AddWithValue(
"@ActivityID", activity.ActivityID);
try
{
connection.Open();
int count = deleteCommand.ExecuteNonQuery();
if (count > 0)
return true;
else
return false;
}
catch (SqlCeException ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
public static Activity GetActivity(String ActivityName)
{
SqlCeConnection connection = Connection.GetConnection();
string selectStatement
= "SELECT ActivityName, ActivityID, Calories "
+ "FROM Activities "
+ "WHERE ActivityName = @ActivityName";
SqlCeCommand selectCommand =
new SqlCeCommand(selectStatement, connection);
selectCommand.Parameters.AddWithValue("@ActivityName", ActivityName);
try
{
connection.Open();
SqlCeDataReader activityReader =
selectCommand.ExecuteReader(CommandBehavior.SingleRow);
if (activityReader.Read())
{
Activity activity = new Activity();
activity.ActivityName = activityReader["ActivityName"].ToString();
activity.ActivityID = (int)activityReader["ActivityID"];
activity.Calories = (int)activityReader["Calories"];
return activity;
}
else
{
return null;
}
}
catch (SqlCeException ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
Example 2
public static string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\crudDB.mdf;Integrated Security=True";
public static void CreateUser(User user)
{
SqlConnection connect = new SqlConnection(connectionString);
string CreateStatement = "INSERT INTO [dbo].[Users](userName, userType) VALUES(@userName, @userType)";
SqlCommand createCmd = new SqlCommand(CreateStatement, connect);
createCmd.Parameters.AddWithValue("@userName", user.UserName);
createCmd.Parameters.AddWithValue("@userType", user.UserType);
try
{
connect.Open();
createCmd.ExecuteNonQuery();
}
catch (SqlException sql) { MessageBox.Show(sql.Message.ToString()); }
catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); }
finally
{
connect.Close();
}
}
private void btnClick_Click(object sender, EventArgs e)
{
SqlConnection connect = new SqlConnection(connectionString);
string name = txtName.Text;
string age = txtAge.Text;
using(connect)
{
SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[people](Name, Age) VALUES(@Name, @Age)", connect);
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@Age", txtAge.Text);
connect.Open();
cmd.ExecuteNonQuery();
connect.Close();
}
}