我正在改進控制檯應用程序的過程中,此刻我無法獲取它來更新行,而不是創建一個新的行,其中包含更新的信息。C# - 使用LINQ更新行
class Program
{
List<DriveInfo> driveList = DriveInfo.GetDrives().Where(x => x.IsReady).ToList<DriveInfo>(); //Get all the drive info
Server server = new Server(); //Create the server object
ServerDrive serverDrives = new ServerDrive();
public static void Main()
{
Program c = new Program();
c.RealDriveInfo();
c.WriteInToDB();
}
public void RealDriveInfo()
{
//Insert information of one server
server.ServerID = 0; //(PK) ID Auto-assigned by SQL
server.ServerName = string.Concat(System.Environment.MachineName);
//Inserts ServerDrives information.
for (int i = 0; i < driveList.Count; i++)
{
//All Information used in dbo.ServerDrives
serverDrives.DriveLetter = driveList[i].Name;
serverDrives.TotalSpace = driveList[i].TotalSize;
serverDrives.DriveLabel = driveList[i].VolumeLabel;
serverDrives.FreeSpace = driveList[i].TotalFreeSpace;
serverDrives.DriveType = driveList[i].DriveFormat;
server.ServerDrives.Add(serverDrives);
}
}
public void WriteInToDB()
{
//Add the information to an SQL Database using Linq.
DataClasses1DataContext db = new DataClasses1DataContext(@"sqlserver");
db.Servers.InsertOnSubmit(server);
db.SubmitChanges();
我想它使用信息的更新將是RealDriveInfo()
方法,這樣,而不是創建新條目它運行的方法,然後從方法插入信息更新當前存儲的信息,如果需要意志輸入一個新條目,而不是每次輸入新條目時都輸入新條目。
目前正在運行該方法,收集相關數據,然後在兩個表中作爲新行輸入。
任何幫助,將不勝感激:)
只是爲了澄清,我想要做的是讓我的數據庫更新RealDriveInfo方法收集的信息。它所做的是創建一個新條目,並將更新後的TotalSpace和FreeSpace變量添加到數據庫中,我想要的是查找服務器的名稱(例如Server1),然後更新信息而不是添加新條目。 – Ghostyy 2012-08-09 08:24:03
因此,首先您可以選擇保存在數據庫中的所有服務器條目。然後你會循環訪問driveList(和你一樣)。如果driveList [i]不存在於您選擇的服務器條目列表中=插入新服務器;否則用當前的潛水錶數據更新現有的服務器列表條目。 – 2012-08-09 08:59:20
這就是我想要做的,但我只是不知道如何得到一個查詢循環driveList .. – Ghostyy 2012-08-09 09:13:55