Having a few problems with this query ::
var q2 =
from sd in db.ServerDrives
where sd.DriveLetter == driveList[i].Name
select sd;
ServerDrive existingServerDrives = q.First();
existingServerDrives.FreeSpace = driveList[i].FreeSpace;
//..
db.SubmitChanges();
My problem is that I don't know where to put the reference to [i] in.
Reference for [i] ::
for (int i = 0; i < driveList.Count; i++)
I can put it above the,
existingServerDrives.FreeSpace = driveList[i].FreeSpace;
And the line recognises it, but I need the whole query to recognise it due to the .(code below). line
where sd.DriveLetter == driveList[i].Name;
Does anyone know how I could possibly do this?
EDIT : FULL CODE::
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 - You will need get information of all servers
server.ServerID = 0; //Here is necessery put PK key. I recommend doing the SQL server will automatically generate the PK.
server.ServerName = string.Concat(System.Environment.MachineName);
//Inserts information in the newServers object
for (int i = 0; i < driveList.Count; i++)
{
//Put here all the information to object Server
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);
var q2 =
from s in db.Servers
where s.ServerName == "LAPTOP-043"
select s;
Server existingServers = q2.First();
for (int i = 0; i < driveList.Count; i++)
existingServers.ServerName = string.Concat(System.Environment.MachineName);
//..
for (int i = 0; i < driveList.Count; i++)
{
var q =
from sd in db.ServerDrives
where sd.DriveLetter == driveList[i].Name
select sd;
ServerDrive existingServerDrives = q.First();
existingServerDrives.FreeSpace = driveList[i].FreeSpace;
//..
db.SubmitChanges();
What I am trying to do is have the query find a row with 'DriveLetter' being the same as the drive C:\ on this computer. The second part is then supposed to change the FreeSpace value and replace it with the new FreeSpace value that is retrieved from the console application.
Any feedback would be appreciated, Thanks in advance :)