Salem Al

Salem Al

  • 2k
  • 12
  • 255

Insert to database MVP C#

Dec 20 2020 12:43 PM
Hi ....
 
I am trying to insert data to database table but i need it check before insert if the inserted data is Exists in database table iam getting this error :
 
CS0120 An object reference is required for the non-static field, method, or property 'ManageVisitsTypesService.InsertVisitsTypes(int, string, bool, string, int)'
 
I sure this Method is not Static.
 
First i have Stored Procedure:
  1. Create procedure [dbo].[Save_Visits_Types]  
  2. @VisitTypeID int output,  
  3. @VisitTypeName nvarchar (Max),  
  4. @VisitTypeStatus bit,  
  5. @VisitTypeNotes nvarchar (Max),  
  6. @CreatedBy int  
  7. As  
  8. BEGIN  
  9. SET NOCOUNT ON;  
  10. If Exists(SELECT 1 FROM dbo.VisitsTypesTbl WHERE VisitTypeID = @VisitTypeID)  
  11. BEGIN  
  12. Return -3;  
  13. END;  
  14. If Exists(SELECT 1 FROM dbo.VisitsTypesTbl WHERE VisitTypeName = @VisitTypeName)  
  15. BEGIN  
  16. Return -4;  
  17. END;  
  18. INSERT INTO dbo.VisitsTypesTbl (VisitTypeID, VisitTypeName, VisitTypeStatus, VisitTypeNotes, CreatedDate, CreatedDeviceName)  
  19. VALUES (@VisitTypeID, @VisitTypeName, @VisitTypeStatus, @VisitTypeNotes, getdate(), HOST_NAME());  
  20. Return -2;  
  21. END  
Then i have Data Access Layer Which i named DBHelper :
  1. //Method To Insert , Update And Delete From Database  
  2. public static bool ExcuteData(string SpName, Action method)  
  3. {  
  4. using (SqlConnection connection = GetConnectionString())  
  5. {  
  6. try  
  7. {  
  8. command = new SqlCommand(SpName, connection);  
  9. command.CommandType = CommandType.StoredProcedure;  
  10. method.Invoke();  
  11. connection.Open();  
  12. command.ExecuteNonQuery();  
  13. connection.Close();  
  14. return true;  
  15. }  
  16. catch (Exception ex)  
  17. {  
  18. connection.Close();  
  19. Console.WriteLine(ex.Message);  
  20. return false;  
  21. }  
  22. finally  
  23. {  
  24. connection.Close();  
  25. }  
  26. }  
  27. }  
Then i have Created Model Class Which contain :
  1. namespace Team_Manager.Models  
  2. {  
  3. public class ManageVisitsTypesModel  
  4. {  
  5. public int VisitTypeID { getset; }  
  6. public string VisitTypeName { getset; }  
  7. public bool VisitTypeStatus { getset; }  
  8. public string VisitTypeNotes { getset; }  
  9. public int CreatedBy { getset; }  
  10. }  
  11. }  
Then i have created the Service Class which contain the insert Method :
  1. //This Method For Insert Paramerters For Visits Types To Database  
  2. public SaveResult InsertVisitsTypesParamerter(int VisitTypeID, string VisitTypeName, bool VisitTypeStatus, string VisitTypeNotes, int CreatedBy, SqlCommand command)  
  3. {  
  4. var pReturnValue = new SqlParameter("@ReturnValue", SqlDbType.Int) { Direction = ParameterDirection.ReturnValue };  
  5. command.Parameters.Add("@VisitTypeID", SqlDbType.Int).Value = VisitTypeID;  
  6. command.Parameters.Add("@VisitTypeName", SqlDbType.NVarChar).Value = VisitTypeName;  
  7. command.Parameters.Add("@VisitTypeStatus", SqlDbType.Bit).Value = VisitTypeStatus;  
  8. command.Parameters.Add("@VisitTypeNotes", SqlDbType.NVarChar).Value = VisitTypeNotes;  
  9. command.Parameters.Add("@CreatedBy", SqlDbType.Int).Value = CreatedBy;  
  10. switch ((int)pReturnValue.Value)  
  11. {  
  12. case -2: return SaveResult.Ok;  
  13. case -3: return SaveResult.DuplicateId;  
  14. case -4: return SaveResult.DuplicateName;  
  15. defaultreturn SaveResult.UnknownError;  
  16. }  
  17. }  
  18. //This Method For Insert Visits Types To Database  
  19. public bool InsertVisitsTypes(int VisitTypeID, string VisitTypeName, bool VisitTypeStatus, string VisitTypeNotes, int CreatedBy)  
  20. {  
  21. return ExcuteData("Save_Visits_Types", () => InsertVisitsTypesParamerter(VisitTypeID, VisitTypeName, VisitTypeStatus, VisitTypeNotes, CreatedBy, command));  
  22. }  
And Presenter Class :
  1. class ManageVisitsTypesPresenter  
  2. {  
  3. IManageVisitsTypes iManageVisitsTypes;  
  4. ManageVisitsTypesModel ManageVisitsTypesModel = new ManageVisitsTypesModel();  
  5. public ManageVisitsTypesPresenter(IManageVisitsTypes view)  
  6. {  
  7. iManageVisitsTypes = view;  
  8. }  
  9. // Connect Between Model And Interface  
  10. private void ConnectManageVisitsTypesModelAndInterface()  
  11. {  
  12. ManageVisitsTypesModel.VisitTypeID = iManageVisitsTypes.VisitTypeID;  
  13. ManageVisitsTypesModel.VisitTypeName = iManageVisitsTypes.VisitTypeName;  
  14. ManageVisitsTypesModel.VisitTypeStatus = iManageVisitsTypes.VisitTypeStatus;  
  15. ManageVisitsTypesModel.VisitTypeNotes = iManageVisitsTypes.VisitTypeNotes;  
  16. ManageVisitsTypesModel.CreatedBy = iManageVisitsTypes.CreatedBy;  
  17. }  
  18. // Insert Visits Types  
  19. public void VisitsTypesInsert()  
  20. {  
  21. if (iManageVisitsTypes.VisitTypeName == "")  
  22. {  
  23. iManageVisitsTypes.TheError.SetError(iManageVisitsTypes.TheStatus, "Please Type Visit Type");  
  24. return;  
  25. }  
  26. SaveResult saveResult = ManageVisitsTypesService.InsertVisitsTypes(ManageVisitsTypesModel.VisitTypeID, ManageVisitsTypesModel.VisitTypeName, ManageVisitsTypesModel.VisitTypeStatus, ManageVisitsTypesModel.VisitTypeNotes, ManageVisitsTypesModel.CreatedBy);  
  27. if (saveResult == SaveResult.DuplicateId)  
  28. {  
  29. MessageBox.Show("This ID Type Allready Exists");  
  30. }  
  31. else if (saveResult == SaveResult.DuplicateName)  
  32. {  
  33. MessageBox.Show("This Type Name Allready Exists");  
  34. }  
  35. else  
  36. {  
  37. ConnectManageVisitsTypesModelAndInterface();  
  38. GetActiveVisitsTypes();  
  39. AutoNumber();  
  40. XtraMessageBox.Show(DevExpress.LookAndFeel.UserLookAndFeel.Default, "Visit Type Saved Successflly ...""Add Visit Type", MessageBoxButtons.OK, MessageBoxIcon.Information);  
  41. }  
  42. }  

Answers (4)