Avatar billede esbenp Nybegynder
21. januar 2007 - 02:19 Der er 4 kommentarer

Parameter til OdbcCommand

Jeg har en SqlCommand jeg prøvet at porte til en tilsvarende OdbcCommand. Odbc forbindelsen er til en mysql.

Min SqlCommand der virker ser sådan ud:


SqlConnection c = new SqlConnection(ConfigurationManager.ConnectionStrings["sdfConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("INSERT INTO users([username],[credit],[password]) VALUES(@username,0,'')", c);
cmd.Parameters.Add(new SqlParameter("@username", TextBox1.Text));
c.Open();
cmd.ExecuteNonQuery();
c.Close();

Det prøver jeg så at lave om til en OdbcCommand:
OdbcConnection c = new OdbcConnection(ConfigurationManager.ConnectionStrings["sdfConnectionString"].ConnectionString);
OdbcCommand cmd = new OdbcCommand("INSERT INTO users(`username`,`credit`,`password`) VALUES(@username,0,'')", c);
cmd.Parameters.Add(new OdbcParameter("@username", TextBox1.Text));
c.Open();
cmd.ExecuteNonQuery();
c.Close();

Når jeg bruger den, får jeg det her at vide:
Column 'username' cannot be null

Det virker hvis jeg ikke bruger parameter og bare hardcoder mit username.

Hvad er der galt?
Avatar billede arne_v Ekspert
21. januar 2007 - 02:21 #1
prøv og erstat @username med ? begge steder
Avatar billede arne_v Ekspert
21. januar 2007 - 02:51 #2
jeg vil iøvrigt anbefale at du bruger MySQL Connector for .NET fremfor ODBC
Avatar billede esbenp Nybegynder
21. januar 2007 - 12:12 #3
Hvis jeg bruger ? siger den:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'username,0,'')'

Jeg prøvede også først N Connector, men kunne ikke lige få den til at virke med visual web developer. Jeg troede jeg kunne udvikle med odbc og så bare skifte til noget andet når det skulle gøre med det ser ikke ud til at kunne lade sig gøre
Avatar billede esbenp Nybegynder
21. januar 2007 - 14:01 #4
ok prøvede så med mysql-connector-net 5.

Jeg kan fint lave en MysqlConnection/MysqlCommand/MysqlParameter i min code behind og det virker fint. I min gridview kan jeg ikke bruge den. I Web.config har jeg:

    <add name="mysqlConnectionString" connectionString="server=localhost; user id=root; password=sdfsdfsdf; database=quiz; pooling=false;"
    providerName="Mysql.Data.MySqlClient" />

og så laver jeg en datasource:

    <asp:SqlDataSource ID="master" runat="server"
        ConnectionString="<%$ ConnectionStrings:mysqlConnectionString %>"
        SelectCommand="SELECT * FROM users"
        ProviderName="<%$ ConnectionStrings:mysqlConnectionString.ProviderName %>">
    </asp:SqlDataSource>

Når jeg så prøver at køre den siger den:  "Unable to find the requested .Net Framework Data Provider.  It may not be installed"

Har lagt Mysql.Data.dll i Bin/
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