cihad
cihad

Reputation: 84

how to enter data to sql column(data type is text)

I have a project in asp.net, it is an online bus reservation ticket system.

I have error while I try to insert data into my database.

Data which comes from the text box does not match with the data type of my column.

Column name is maplink and datatype is text.

Here is my c# code.

 protected void add_Click(object sender, EventArgs e)
 {
         using (SqlConnection con = new SqlConnection("Data Source=JIHAD-PC;Initial Catalog=OBTRS;Integrated Security=True"))
          {
              using (SqlCommand cmd = new SqlCommand())
              {
                  cmd.Connection = con;
                  cmd.CommandText = "INSERT INTO ROUTE 
                     ([FROM],[TO],MONDAY,TUESDAY,WEDNESDAY,THURSDAY,
                       FRIDAY,SATURDAY,SUNDAY,FARE,MAPLINK) 
                      VALUES (" 
                      + DropDownList1.SelectedIndex.ToString() + "," 
                      + DropDownList2.SelectedIndex.ToString() + "," 
                      + monday + "," + thusday + "," 
                      + wednesday + "," + thursay + "," 
                      + friday + "," + saturday + ","
                      + sunday + "," + Int32.Parse(fare.ToString()) + "," 
                      + maplink.Text + ")";//**here is my error<-----------------------**


                  using (SqlDataAdapter adp = new SqlDataAdapter())
                  {
                      adp.SelectCommand = cmd;

                      DataTable tablo = new DataTable();
                      adp.Fill(tablo);


                  }

              }
          }
    }

Upvotes: 0

Views: 1472

Answers (1)

marc_s
marc_s

Reputation: 755321

You should REALLY use parametrized queries - ALWAYS, no exceptions. Those are safe against SQL injection attacks, and they're often faster, too.

protected void add_Click(object sender, EventArgs e)
{
    string insertStmt = "INSERT INTO dbo.ROUTE([FROM], [TO], MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, FARE, MAPLINK) " +
                        "VALUES(@From, @To, @Monday, @Tuesday, @Wednesday, @Thursday, @Friday, @Saturday, @Sunday, @Fare, @Maplink)";

    using (SqlConnection con = new SqlConnection("Data Source=JIHAD-PC;Initial Catalog=OBTRS;Integrated Security=True"))
    using (SqlCommand cmd = new SqlCommand(insertStmt, con))
    {
        // fill the parameters
        cmd.Parameters.Add("@From", SqlDbType.Varchar, 50).Value = DropDownList1.SelectedIndex.ToString();
        cmd.Parameters.Add("@To", SqlDbType.Varchar, 50).Value = DropDownList2.SelectedIndex.ToString();
        cmd.Parameters.Add("@Monday", SqlDbType.Int).Value = monday;
        cmd.Parameters.Add("@Tuesday", SqlDbType.Int).Value = tuesday;
        cmd.Parameters.Add("@Wednesday", SqlDbType.Int).Value = wednesday;
        cmd.Parameters.Add("@Thursday", SqlDbType.Int).Value = thursday;
        cmd.Parameters.Add("@Friday", SqlDbType.Int).Value = friday;
        cmd.Parameters.Add("@Saturday", SqlDbType.Int).Value = saturday;
        cmd.Parameters.Add("@Sunday", SqlDbType.Int).Value = sunday;
        cmd.Parameters.Add("@Fare", SqlDbType.Int).Value = fare;
        cmd.Parameters.Add("@Maplink", SqlDbType.VarChar, 100).Value = maplink.Text;

        // open connection, execute INSERT command, close connection
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

I have no idea what your Monday through Sunday values are - string? Int? Something else entirely? You might need to adapt the above code to match your own datatypes!

Upvotes: 1

Related Questions