Хорошо, у меня есть DataGridView для некоторого программного обеспечения для управления проектами, я хочу иметь возможность дважды щелкнуть строку, чтобы открыть форму и заполнить поля и поля со списком соответствующими данными, чтобы я мог изменитьчто когда-либо должно быть изменено.В этом случае самым важным является изменение статуса.Как и в ПО для управления проектами, у меня есть ошибки и задачи, которые имеют статус и должны быть изменены в какой-то момент, очевидно, когда ошибка устранена или задача завершена.
Итак, я покажу, как DGV получает данные для раздела ошибок:
public void ViewAllBugs()
{
DataClasses1DataContext dc = new DataClasses1DataContext(sConnectionString);
var Bugs =
(from data in dc.GetTable<Bug>()
from user in dc.GetTable<User>()
from projects in dc.GetTable<Project>()
from priority in dc.GetTable<Priority>()
from status in dc.GetTable<Status>()
from category in dc.GetTable<Category>()
where data.UserID == user.UserID && data.ProjectID == projects.ProjectID && data.PriorityID == priority.PriorityID && status.StatusID == data.StatusID && category.CategoryID == data.CategoryID
select new
{
Bug = data.Name,
Project = projects.Name,
Priority = priority.Priority1,
Status = status.Name,
Category = category.Category1,
Assigned_To = user.Username,
Start = data.Opened_Date,
End = data.Closed_Date,
Description = data.Description,
});
dgvBugs.DataSource = Bugs;
}
Как вы видите, мой подход довольно упрощен.Я также покажу код для создания новой ошибки.ComboBox были DataBound с использованием опции GUI, в отличие от меня, на самом деле жестко его кодировать.
public void CreateBug()
{
string sBugName = txtName.Text;
string sDescription = txtDescription.Text;
int iProject = Convert.ToInt32(cbProject.SelectedValue);
int iPriority = Convert.ToInt32(cbPriority.SelectedValue);
int iStatus = Convert.ToInt32(cbStatus.SelectedValue);
int iCategory = Convert.ToInt32(cbCategory.SelectedValue);
int iUser = Convert.ToInt32(cbAssigned.SelectedValue);
DateTime dtOpen = dateOpened.Value;
DateTime dtClosed = dateClosed.Value;
DataClasses1DataContext dc = new DataClasses1DataContext(sConnectionString);
Table<Bug> tBug = dc.GetTable<Bug>();
Bug nBug = new Bug();
nBug.Name = sBugName;
nBug.ProjectID = iProject;
nBug.PriorityID = iPriority;
nBug.StatusID = iStatus;
nBug.CategoryID = iCategory;
nBug.UserID = iUser;
nBug.Opened_Date = dtOpen;
nBug.Closed_Date = dtClosed;
nBug.Description = sDescription;
tBug.InsertOnSubmit(nBug);
dc.SubmitChanges();
this.Close();
}
Теперь я знаю, что там есть несколько кусков небрежного кода, но я новичок в C #, и я лично думаю,Я не так уж плохо.Но если вы видите что-то, что должно быть улучшено, пожалуйста, не стесняйтесь упоминать об этом.
Мои DataClasses1DataContext организованы так, что существуют ассоциации между UserID, PriorityID, CategoryID, UserID, ProjectID и StatusID.
Итак, я хочу иметь возможность щелкнуть Bug1 (пример ошибки) в DGV, и для этого нужно открыть форму (которую я еще не сделал), и мне нужно иметь возможность редактировать каждый фрагмент данных.в этой ошибке.
Если вам потребуется дополнительная информация, я буду более чем рад предоставить ее!
Спасибо,
Брендан