0

I have this web written in C# , that provides a table for user with these data ( ID , FROM , TITLE , MESSAGE ) Table name on database is MessagesTable

My question is how can I use Entity Framework to upload data on the table , I used to do it using ConnectionStrings.

 public partial class UsersEF : System.Web.UI.Page
    {


        static string ConnStr = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
        int SelectedID = 0;
        SqlConnection con;

        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //GridViewRow grdrw = GridView1.Rows[e.RowIndex];
            //SelectedID = int.Parse(GridView1.Rows[e.RowIndex].Cells[0].Text);
            SelectedID = int.Parse(e.NewValues["Id"].ToString()); 
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "UPDATE MessagesTable set [From]=@From   ,[To] =@To ,Title =@Title  ,Message = @Message  WHERE Id = @Id";
            
            cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Int)).Value=SelectedID;
            cmd.Parameters.Add(new SqlParameter("@From",SqlDbType.NVarChar ,50)).Value = e.NewValues["From"].ToString();
            cmd.Parameters.Add(new SqlParameter("@To", SqlDbType.NVarChar, 50)).Value= e.NewValues["To"].ToString();
            cmd.Parameters.Add(new SqlParameter("@Title", SqlDbType.NVarChar, 50)).Value = e.NewValues["Title"].ToString(); 
            cmd.Parameters.Add(new SqlParameter("@Message", SqlDbType.NVarChar, 150)).Value = e.NewValues["Message"].ToString();
            if (cmd.ExecuteNonQuery() > 0)
            {
                e.Cancel = true;
                GridView1.EditIndex = -1;
                BindGrid();
            }
            else {
                e.Cancel = false;
            };

        }

        protected void GridView1_RowEditing1(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            BindGrid();
            // SelectedID = int.Parse(GridView1.Rows[e.NewEditIndex].Cells[0].Text);
        }

        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            e.Cancel = true;
            GridView1.EditIndex = -1;
            BindGrid();
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {            
            SelectedID =int.Parse (GridView1.SelectedRow.Cells[0].Text);
            BindGrid();
        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            SelectedID = int.Parse(GridView1.Rows[e.NewEditIndex].Cells[0].Text);
            BindGrid();
            //SelectedID = int.Parse();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            con = new SqlConnection(ConnStr);
            con.Open();
            if (!Page.IsPostBack)
            {
                BindGrid();
            }
        }

        public void BindGrid()
        {
            var context = new TestDBEntities();
            //DataTable table = new DataTable();
            var table = context.MessagesTable.ToList();
            
                /*
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "Select Id,[From],[To],Title,Message from MessagesTable ";

            //DataSet dataSet = new DataSet();
            DataTable table=new DataTable();
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(table);
                */
            GridView1.DataSource = table;//dataSet.Tables[0];
            GridView1.DataBind();

        }

    }
Maya
  • 3
  • 4

1 Answers1

0

You can update it this way using EF -

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
  SelectedID = int.Parse(e.NewValues["Id"].ToString());
  // retrieve from db
  var messages = this.context.MessagesTable.FirstOrDefault(x=>x.id == SelectedID);
  // update values
  messages.From = int.Parse(e.NewValues["From"].ToString());
  messages.To= int.Parse(e.NewValues["To"].ToString());
  messages.Title = int.Parse(e.NewValues["Title"].ToString());
  messages.Message= int.Parse(e.NewValues["Message"].ToString());
  //Save changes into db
  this.context.MessagesTable.Update(messages);
  this.context.SaveChanges();
}
pankaj
  • 185
  • 1
  • 2
  • 10