2013-08-02 7 views
0

У меня есть эта функция назначения, где администратор может назначить идентификатор полиции выбранному идентификатору memberreportID. Во-первых, администратор выбирает случай, выбирает место и выбирает количество офицеров, необходимых для этого случая. Например, если администратор выбрал двух офицеров, он отобразил бы 2 раскрывающегося списка, все привязанные к списку доступных доступных полицейских.Вставить несколько значений из атрибутов одного столбца в другой

protected void ddllocation_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     using (var connAdd = new SqlConnection("Data Source = localhost; Initial Catalog = MajorProject; Integrated Security= SSPI")) 
     { 
      connAdd.Open(); 

      var sql = "Select policeid from PoliceAccount where status ='available' and handle ='offcase' and postedto='" + ddllocation.SelectedValue + "'"; 
      using (var cmdAdd = new SqlDataAdapter(sql, connAdd)) 
      { 
       DataSet ds2 = new DataSet(); 
       cmdAdd.Fill(ds2); 

       ddlpid1.Items.Clear(); 
       ddlpid1.DataSource = ds2; 
       ddlpid1.DataTextField = "policeid"; 
       ddlpid1.DataValueField = "policeid"; 
       ddlpid1.DataBind(); 
       ddlpid1.Items.Insert(0, new ListItem("Police ID", "")); 
       ddlpid1.SelectedIndex = 0; 

       ddlpid2.Items.Clear(); 
       ddlpid2.DataSource = ds2; 
       ddlpid2.DataTextField = "policeid"; 
       ddlpid2.DataValueField = "policeid"; 
       ddlpid2.DataBind(); 
       ddlpid2.Items.Insert(0, new ListItem("Police ID", "")); 
       ddlpid2.SelectedIndex = 0; 

     } 
    } 

Первая команда SQL, как я вставить их в колонну AssignTo выбранного memberreportID в моей базе данных. Я вставляю оба полицейских, которых я назначил в одну колонку, присваивать.

protected void btnAssign_Click1(object sender, EventArgs e) 
    { 


     using (var connAdd = new SqlConnection("Data Source = localhost; Initial Catalog = MajorProject; Integrated Security= SSPI")) 
     { 

      String assign = ddlpid1.SelectedValue + ", " + ddlpid2.SelectedValue + "; 

      connAdd.Open(); 
      var sql = "Update MemberReport Set assignto ='" + assign + "' where memberreportID='" + lbmemberreportid.Text + "'"; 
      using (var cmdAdd = new SqlCommand(sql, connAdd)) 
      { 
       cmdAdd.ExecuteNonQuery(); 

      } 

      sql = "Update PoliceAccount Set handle ='" + assign + "' where policeid ='" + ddlpid1.SelectedValue + "' OR '" + ddlpid2.SelectedValue + "'"; 
      using (var cmdAdd = new SqlCommand(sql, connAdd)) 
      { 
       cmdAdd.ExecuteNonQuery(); 
      } 
      connAdd.Close(); 
     } 


    } 

Однако я также пытаюсь ввести этот идентификатор полиции в стол, называемый полицейским счетом, включив команду 2-го блока. У этого полицейского счета есть столбец под названием handle, который предположительно покажет идентификатор memberreportID, который он обрабатывает на данный момент. Я пытаюсь разрешить каждой учетной записи policID получать выбранный memberreportID в свой столбец дескриптора, используя функцию ИЛИ. Я уверен, что есть функция OR для синтаксиса sql. Но когда я попытался вставить я получил эту ошибку вместо

An expression of non-boolean type specified in a context where a condition is expected, near ''. 

ответ

1

она должна быть ниже

sql = "Update PoliceAccount Set handle ='" + assign + "' where policeid ='" + ddlpid1.SelectedValue + "' OR policeid = '" + ddlpid2.SelectedValue + "'"; 

Синтаксис является

UPDATE tblName Set col1 ='value' 
WHERE col2 ='value2' 
     OR col2 ='value3'