Avatar billede xhofa Nybegynder
01. december 2005 - 13:14 Der er 10 kommentarer og
1 løsning

Tilskrivning til SQL-database.

Hej.

Jeg er ved at lave et program, der får noget data fra com-porten, denne data skal jeg så sammenligne med noget jeg har i min MsSQL database. Når den har fundet et match med koordX og koordY skal den udregne et delay. Og så skrive det ind i reelAfgang i tabellen BusLog.
Jeg har fået hentet dataen fra com-porten, og delt den op i tre strings, men så kommer problemet, har ikke særlig meget forstand på SQL og C# blandet sammen, endnu.
Det her er hvad jeg har skrevet indtil videre, men ved selvfølgelig ikke om det er rigtigt, jeg er i hvert fald gået i stå;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO.Ports;

namespace SP
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialPort sp = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

            string incomingBuffer;
            string[] cutStrings;
            string koordy;
            string koordx;
            string time;

            sp.Open();
            //int time;
            do
            {
                incomingBuffer = sp.ReadLine();
                cutStrings = incomingBuffer.Split(',');
                //foreach (string s in cutStrings)
                //{
                //    Console.WriteLine("for each{0}", s);
                //}
                koordx = cutStrings[0];
                koordy = cutStrings[1];
                time = cutStrings[2];
                Console.WriteLine("{0}, {1}, {2}", koordy, koordx, time);

            }
            while (incomingBuffer.Contains(","));


            string strSql = "SELECT koordX, koordY" +
            "FROM Ruter" +
            "WHERE koordX = koordx  AND koordY = koordy" +
        }



    }
}

Så er det jeg skal se om predefAfgang er det samme som tid, og hvis det ikke er det, skal den udregne delay og skrive det ind i BusLog.


Håber i forstår hvad jeg mener, ellers må i lige skrive.
Avatar billede the_party_dog Nybegynder
01. december 2005 - 14:09 #1
Kan du ikke lave en lille oversigt over hvordan dine tabeller ser ud?
Avatar billede the_party_dog Nybegynder
01. december 2005 - 14:10 #2
Udfra hvad skal den udregne dit delay?
Avatar billede the_party_dog Nybegynder
01. december 2005 - 14:15 #3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.IO.Ports;

namespace SP
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialPort sp = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

            string incomingBuffer;
            string[] cutStrings;
            string koordy;
            string koordx;
            string time;

            sp.Open();
            //int time;
            do
            {
                incomingBuffer = sp.ReadLine();
                cutStrings = incomingBuffer.Split(',');
                //foreach (string s in cutStrings)
                //{
                //    Console.WriteLine("for each{0}", s);
                //}
                koordx = cutStrings[0];
                koordy = cutStrings[1];
                time = cutStrings[2];
                Console.WriteLine("{0}, {1}, {2}", koordy, koordx, time);

            }
            while (incomingBuffer.Contains(","));

            string Result = "";

            //Har du ikke en ID kolonne eller noget i din tabel?
            string strSql = "SELECT ID" +
                "FROM Ruter" +
                "WHERE koordX = koordx  AND koordY = koordy";

            //Du skal have lavet en connection object til din sql server.
            //Husk at indsætter dit eget servernavn, login, og password.
            SqlConnection con = new SqlConnection(" Server=SERNAVN;Database=pubs;User ID=USRID;Password=USRPW;Trusted_Connection=False");
            SqlCommand cmd = new SqlCommand(strSql, con);
           
            try
            {
                //Nu vil vi prøve at se om den kan finde noget som passer
                //til dine koordinater
                Result = Convert.ToString(cmd.ExecuteScalar());
            }
            catch(SqlException SE)
            {
                //Hvis der opstår en fejl med din forbindelse til din
                //database, vil din kode går ind her.
                Console.WriteLine(SE.ToString());
            }

            //Hvis dit sql returnede noget, vil din kode går ind her.
            if(Result != "")
            {
                Console.WriteLine("Hej");
            }
        }
    }
}
Avatar billede xhofa Nybegynder
01. december 2005 - 14:21 #4
mine tabeller ser sådan ud, ved ikke hvorfor jeg glemte at tage dem med;

USE logdatabase
CREATE TABLE Ruter
(
    punktnr INT,
    rutenr INT,
    koordX FLOAT,
    koordY FLOAT,
    predefAfgang INT,
    primary key(punktnr, rutenr)
);


CREATE TABLE BusLog
(
    id INT NOT NULL identity(1,1),
    punktnr INT,
    rutenr INT,
    dato smalldatetime,
    reelAfgang INT,
    delay INT,
    primary key(id),
    foreign key (punktnr, rutenr)
        references Ruter(punktnr, rutenr)
);


Men den skal udregne delay udfra hvor mange minutters forskel der er på predefAfgang og så Time
Avatar billede the_party_dog Nybegynder
01. december 2005 - 14:34 #5
Jeg er nød til at smutte for idag, men vender tilbage imorgen. Held og lykke. Skrives imorgen.
Avatar billede xhofa Nybegynder
01. december 2005 - 14:39 #6
okay, men tak for hjælpen indtil videre :)
Avatar billede xhofa Nybegynder
01. december 2005 - 15:41 #7
men ingen andre der kan hjælpe imellemtiden?
Avatar billede xhofa Nybegynder
05. december 2005 - 13:10 #8
jeg har fået lavet det hele nu, men kan du ikke skrive så du kan få lidt point?
Avatar billede the_party_dog Nybegynder
05. december 2005 - 13:13 #9
Gerne :)

Gik det godt alt sammen?
Avatar billede the_party_dog Nybegynder
05. december 2005 - 13:13 #10
ups! Svar kommer her
Avatar billede xhofa Nybegynder
05. december 2005 - 15:29 #11
Ja, det kom til at fungere som jeg havde forestillet mig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester