sql >> Database teknologi >  >> RDS >> Sqlserver

Lagring af url'en i SQLSERVER 2005 ved hjælp af C#-kode (datasæt)

Problemet er, at du faktisk ikke udfører kommandoen mod databasen. Du definerer den InsertCommand, der skal bruges, men den udføres ikke.

Baseret på den kode kan jeg ikke se, at du skal bruge et DataAdapter/DataSet alligevel, bare brug en SqlCommand til at lave indsættelsen, som er mere letvægts. Noget som dette:

public void Storetxt(String txt)
{
    //connection to the database
    string connection = "Data Source=.\\sqlexpress2005;Initial Catalog=PtsKuratlas;Integrated Security=True";
    SqlConnection conn = null;
    SqlCommand cmd = null;
    try
    {
        conn = new SqlConnection(connection);
        cmd = new SqlCommand("INSERT INTO gti_analytics (Links) VALUES (@Link)", conn);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@Link", txt);
        conn.Open();
        cmd.ExecuteNonQuery();
    }
    catch{//handle exceptions}
    finally
    {
        if (cmd != null) cmd.Dispose();
        if (conn != null) 
        {
            if (conn.State == ConnectionState.Open) conn.Close();
            conn.Dispose();
        }
    }
}

Jeg vil også anbefale ikke at bruge ntext til dette i din db. Hvis du virkelig har brug for unicode-understøttelse, så brug nvarchar, som kan gå op til 4000 tegn før sql 2005, eller nvarchar(max), som kan gemme så meget som ntext fra SQL 2005 og fremefter. Hvis du ikke har brug for unicode-understøttelse, så brug varchar i stedet (8000 tegn præ-sql 2005, VARCHAR(MAX) fra SQL 2005 og frem tillader det samme som tekst)



  1. Brug af python sqlalchemy til at udføre rå forespørgsler med WITH-sætning

  2. SQLite FINDER

  3. MySQL MONTHNAME() fra tal

  4. Hvordan indstiller jeg ActiveRecord-forespørgselstimeout for mysql?