Avatar billede drdal Nybegynder
09. december 2008 - 11:31 Der er 3 kommentarer og
1 løsning

C5 2008 med på MS-SQL adgang via ASP.NET

Hej Eksperter.

Jeg er ved at udvikle en webshop, der henter sine data fra C5's MSSQL database og jeg har fået hul igennem til databasen igennem VS2008, som en odbc connection og jeg kan lave diverese forespørgsler uden problemer.

Problemet er først når jeg kodemæssigt vil lave en forbindelse, her går det galt.

Hvordan laver jeg kodemæssigt forbindelse til databasen?
Skal det være ODBC til MSSQL serveren?
Avatar billede drdal Nybegynder
09. december 2008 - 11:33 #1
public class clsMsConn
{
    public DataSet ds = new DataSet();
    public OdbcDataAdapter da = new OdbcDataAdapter();

    public void sqlDataBase(string query)
    {
        OdbcConnection con = new OdbcConnection("Driver={SQL Server}; Server=MIN SQL SERVER; Dsn=c5sqldsn; Initial Catalog=c5sqldb;  User Id=MIN USER; Password=MIT PSW;");
        OdbcCommandBuilder hat = new OdbcCommandBuilder(da);
        OdbcCommand cmd = new OdbcCommand(query, con);
        da.SelectCommand = cmd;

        con.Open();


        da.Fill(ds);

        con.Close();
    }
}
Avatar billede drdal Nybegynder
09. december 2008 - 11:37 #2
Fra en anden klasse prøver jeg så flg.

clsMsConn dbCon = new clsMsConn();
dbCon.sqlDataBase("SELECT NAME FROM CUSTTABLE");
               
foreach (DataRow row1 in dbCon.ds.Tables[0].Rows)
{
  HeaderTekst.Text = row1["NAME"].ToString();
}
dbCon.ds.Tables.Clear();
dbCon.ds.Clear();

Her for jeg flg. fejl:

ERROR [42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'CUSTTABLE'.

Nogen forslag?
Avatar billede drdal Nybegynder
09. december 2008 - 12:59 #3
Jeg har selv løst problemet, hvilket var nogen rettigheder på MS-SQL serveren:

1. serveren skal stå til: SQL server and Windows authentication mode
2. Har oprettet en bruger til webadgang og mappet ham til c5sqldb, der er databasen lavet af C5
3. Givet ham db_datareader rettigheder på databasen.

Desuden har jeg connected en SQL connection i stedet for ODBC i koden:


public DataSet ds = new DataSet();
        public SqlDataAdapter da = new SqlDataAdapter();

        public void sqlDataBase(string query)
        {

            SqlConnection con = new SqlConnection(@"Data Source=MIN SERVER; Initial Catalog=c5sqldb; User Id=MIN EGEN OPRETTEDE BRUGER; Password=MIT PASSWORD");
            SqlCommandBuilder hat = new SqlCommandBuilder(da);
            SqlCommand cmd = new SqlCommand(query, con);
            da.SelectCommand = cmd;

            con.Open();


            da.Fill(ds);

            con.Close();
        }
Avatar billede drdal Nybegynder
09. december 2008 - 13:01 #4
svar
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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