Det är ju connectionstring som det gäller. Hur skall den se ut om jag vill hämta
info ifrån ett webhotel?
Data Source =www.minsida.se/enMapp/enAnnanMapp/minDatabas/databas.mdb;
..detta är alltså bara en del av connectionstringen men hur skall jag ändra på
den???
Jag ser det som dumt att försöka koppla dig mot en databas på det sättet. Databasen bör/skall ligga i en skyddad mapp som inte kan nås utifrån, utan endast av den webapplikationen som återfinns på webhotellet samt via ftp så att säga.
Men sen, något som blir ett problem, det är att du kommer inte ha skrivrättigheter på den databasen som ligger med den användare på datorn som kör windowsapplikationen.
I ett sådant här fall skulle det vara bätte om du skrev ihop en/flera webservices som utför diverse saker mot databasen. Dessa ligger sedan på webhotellet, och så låter du din winapplikation referera till dessa webservices på webhotellet.
Alternativt är om man kan komma åt websiten via ex. ftp och kunna lägga upp den som nätverksmapp.
Vet inte vad de andra säger.. men kan du komma åt den via webben på följande sätt:
http://www.domain.se/mapp/databas.mdb , så kan jag också göra det så att säga. Vilket lämnar en massa väggar öppna för att hacka din databas och lägga in påhittad data ex.
Tack för ditt uttömmande svar FreddeMannen. Jo säkerheten är naturligtvis av vikt.
Vad jag tänkte, ville var att undvika vad jag hitintills har gjort, byggt en Admin-sida
som ligger på servern, och där editerat allt.
Jag tänkte att det skulle bli smidigare. Att bygga en/flera webservices låter väll lite
jobbigt (jag har gjort det tidigare) och jag stötte på en massa patrull när jag skulle
uppdatera.
Tack för ditt uttömmande svar FreddeMannen. Jo säkerheten är naturligtvis av vikt.
Vad jag tänkte, ville var att undvika vad jag hitintills har gjort, byggt en Admin-sida
som ligger på servern, och där editerat allt.
Jag tänkte att det skulle bli smidigare. Att bygga en/flera webservices låter väll lite
jobbigt (jag har gjort det tidigare) och jag stötte på en massa patrull när jag skulle
uppdatera.
Jag tycker faktiskt att detta låter som ett ypperligt fall för webservice även om du tycker det är jobbigt. :/
Det finns massor vägar att gå för att lösa uppdateringsproblem.
Jag har varit lite lat, haft en massa andra object, och har därför inte hunnit bygga
om min egen site till asp.net, men det skall väll inte möta några problem.
När jag då bygger en webservice skall då den fysiska filen ligga där jag har min
databas?
Det lär nog komma flera frågor, men vi börjar här.
Jag har varit lite lat, haft en massa andra object, och har därför inte hunnit bygga
om min egen site till asp.net, men det skall väll inte möta några problem.
När jag då bygger en webservice skall då den fysiska filen ligga där jag har min
databas?
Det lär nog komma flera frågor, men vi börjar här.
Så länge webservicen ligger under din domän så att säga och att din databas också finns där, så behöver inte webservicen ligga i samma map, bara låta den accessa databasen, så att du kan låta webservicen hämta/skicka info till databasen.
Jag har nu kollar runt lite och hittat ett bra exempel på http://www.codeproject.com/KB/XML/BeginnerWebService.aspx. Jag tror att jag förstår hur jag skall få data ifrån web servise, men hur i hela fridens namn skall jag
kunna uppdatera ifrån min windows application via webb service till databasen?
Jag har nu kollar runt lite och hittat ett bra exempel på http://www.codeproject.com/KB/XML/BeginnerWebService.aspx. Jag tror att jag förstår hur jag skall få data ifrån web servise, men hur i hela fridens namn skall jag
kunna uppdatera ifrån min windows application via webb service till databasen?
Du bygger en webservice med ex antal metoder. Säg att du vill lägga till en ny post i databasen.
public void AddCustomer(string customerName, string customerAddress ... ) {
// code for adding to the database
}
Alternativt kan du, en webservice för att lägga till en Customer.:
public string CustomerName{ get; set; }
public string CustomerAddress{ get; set; }
public void Save() {
// code for adding the stuff to the database
}
Eller (här måste dock webservicen känna till DTO (data transfer object))
public Save(Customer customer) {
// stuff for adding the customer to the database..
}
Nu vet jag inte om man kan få problem med rättigheter och så när man använder webservice till att skriva i en databas eller till filer på remote servern...
När jag grunnat lite på detta så kom jag fram till följande förslag. Jag lägger ju alla mina
värden i en array, det måste väll vara ok att ifrån windows appen skicka arrayen, och
därifrån göra en sql med de inkommande värden och sedan uppdatera databasen.
När jag grunnat lite på detta så kom jag fram till följande förslag. Jag lägger ju alla mina
värden i en array, det måste väll vara ok att ifrån windows appen skicka arrayen, och
därifrån göra en sql med de inkommande värden och sedan uppdatera databasen.
Eller är jag helt fel ute?
Jag tycker att det är helt fel i grund och botten isåfall om jag förstått det rätt.
När jag grunnat lite på detta så kom jag fram till följande förslag. Jag lägger ju alla mina
värden i en array, det måste väll vara ok att ifrån windows appen skicka arrayen, och
därifrån göra en sql med de inkommande värden och sedan uppdatera databasen.
Rent praktiskt skulle det fungerar, men en betydlig bättre lösning är att för varje data som du skall mata in/uppdatera i databasen så tar du emot en entitet av den datan, och utifrån det så skapar du dina SQL-satser.
Ja det är bra mycket mer jobb, än att lösa det med din array, men det är en sådan mycket bättre lösning, så skall du tänka långsiktigt och underhållsmässigt så är det ingen tvekan om saken, gör det rätt från början.
Vill du bara ha snabbt kunna göra en INSERT/UPDATE till din databas, så skulle följande lösning göra det snabbt till dig, men som sagt, den är inte speciellt bra.
public enum SQLValues{
public string DBFieldName;
public object DBFieldValue;
public type DBFieldType;
}
public class DBInformation{
public List<SQLValues> DBData;
public List<SQLValues> WhereData;
public string TableName;
}
Något sådant skulle du kunna göra för att gå till en INSERT/UPDATE/DELETE funktion mot din databas, nu är min psedu-kod inte speciellt bra, du du bör använda parameters istället och stringbuilder för att bygga ihop sqlstatement, men det ger dig något att börja med. Men återgien det är en kortsiktigt och snabb lösning, inte den bästa...
Hej och tack för alla förslag. Jag är inte säker på att jag har förstått Gladhs
förslag, men jag skall grunna på det.
Under tiden så har jag lekt lite med array, jag vet att ni skriker nu, jag har ju
inte använt mig av parameter. Det kommer jag ville bara se om jag kunde
få detta att fungera.
//wind.app
sträng = new string[7];
sträng[0] = sId;
sträng[1] = textFraga.Text;
sträng[2] = textAlt1.Text;
sträng[3] = textAlt2.Text;
sträng[4] = textAlt3.Text;
sträng[5] = iRat.ToString();
sträng[6] = textRatt.Text;
UppdateraFraga(sträng);
private void UppdateraFraga(string[] AllaVärden)
{//denna får nog göras om
int fraga = listBox1.SelectedIndex;
localhost.WebService sevice = new SAW_Registret.localhost.WebService();
label1.Text = sevice.UppdateraFraga(AllaVärden);
//label1.Text talar om ifall det gick bra eller dåligt.
//webservice
public string UppdateraFraga(string[] AllaVärden)
{
string uppdateCheeck = "";
try
{
sql = "Update QUIZE Set Fraga='" + Webbutill.fixaTecken(AllaVärden[1])
+ "',Allt1='" + Webbutill.fixaTecken(AllaVärden[2]) + "',Allt2='" +
Webbutill.fixaTecken(AllaVärden[3]) + "',Allt3 = '" + Webbutill.fixaTecken(AllaVärden[4])
+ "',Svar = '" + Webbutill.fixaTecken(AllaVärden[5]) + "' WHERE Id =" +
AllaVärden[0];
Webbutill.executeSQL(sql, DBConn);
uppdateCheeck = "Uppdaterat: \"" + AllaVärden[1] + "\"";
}
catch (Exception fel)
{
uppdateCheeck = " ERROR " + fel.Message;
}
return uppdateCheeck;
}
Jag får inga som helst felmeddelanden. Label1 visar den fråga som kommer
ifrån webservice och den stämmer helt. Men, databasen uppdateras inte. Någon som ser felet?(felen)
[REDIGERAT]
Nu fick jag änteligen ett felmeddelande. Operationen måste använda en fråga som kan uppdateras.
Jag har alla rättigheter där webservicen ligger, även asp.net och iiuser, vad
mera kan jag göra?
[REDIGERAT]
Och nu så fungerar det. Vad krävdes var att jag lät den "vanliga användaren"
få lite mera rättigheter.
268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849