Note that there are some explanatory texts on larger screens.

plurals
  1. POC# - SQL - LINQ Query
    primarykey
    data
    text
    <p>Having a few problems with this query ::</p> <pre><code>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(); </code></pre> <p>My problem is that I don't know where to put the reference to [i] in.</p> <p>Reference for [i] ::</p> <pre><code>for (int i = 0; i &lt; driveList.Count; i++) </code></pre> <p>I can put it above the,</p> <pre><code>existingServerDrives.FreeSpace = driveList[i].FreeSpace; </code></pre> <p>And the line recognises it, but I need the whole query to recognise it due to the .(code below). line</p> <pre><code>where sd.DriveLetter == driveList[i].Name; </code></pre> <p>Does anyone know how I could possibly do this?</p> <p>EDIT : FULL CODE::</p> <pre><code>class Program { List&lt;DriveInfo&gt; driveList = DriveInfo.GetDrives().Where(x =&gt; x.IsReady).ToList&lt;DriveInfo&gt;(); //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 &lt; 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 &lt; driveList.Count; i++) existingServers.ServerName = string.Concat(System.Environment.MachineName); //.. for (int i = 0; i &lt; 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(); </code></pre> <p>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.</p> <p>Any feedback would be appreciated, Thanks in advance :)</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload