Problem z UPDATE do bazy MS SQL...

0

Witam wszystkich mam taki problem napisałem sobie program (na tyle ile umiałem ;)) logujący się na pewną stronę i zaciągający dane.


private void Form1_Load(object sender, EventArgs e)
        {



            SqlCommand cmd = new SqlCommand(@"SELECT [Id] FROM [wyklady_test].[dbo].[OrderBook_Prod] WHERE [Id] > 100, con);

            var client = new CookieAwareWebClient();
            client.BaseAddress = @"https://jakasstrona.pl";
            var loginData = new NameValueCollection();
            loginData.Add("login", "login");
            loginData.Add("password", "pass");
            client.UploadValues("", "POST", loginData);


            try
            {
                con.Open();

                using (SqlDataReader read = cmd.ExecuteReader())
                {
                    while (read.Read())
                    {
                        string id = (read["Id"].ToString());



                       
                        string urlhtml = ("https://www.jakastrona.pl/szukaj/inv_id/" + id + ");

                        string htmlSource = client.DownloadString(urlhtml);


                        var doc = new HtmlAgilityPack.HtmlDocument();
                        doc.LoadHtml(htmlSource);
                        try
                        {
                            foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//html//body//div//div//div//div//div//div//div//div//div//h3//a[@href]"))
                            {
                              
                                hrefValue = link.GetAttributeValue("href", string.Empty);
                    
                            }

                            var htmlData = client.DownloadData(@"https://www.jakasstrona.pl" + hrefValue);
                            var htmlCode = Encoding.UTF8.GetString(htmlData);

                            Encoding iso = Encoding.GetEncoding("UTF-8");
                            var doc1 = new HtmlAgilityPack.HtmlDocument();

                            doc1.LoadHtml(htmlCode);

                            foreach (HtmlNode link1 in doc1.DocumentNode.SelectNodes("//*[@class=\"col-xs-12 col-sm-9 p-b-1\"]"))
                            {
                               
                                hrefValue = link1.InnerText;

                                StringBuilder builderp = new StringBuilder(hrefValue);
                                builderp.Replace(" ", " ");
                                builderp.Replace("Więcej", "");
                                builderp.Replace("▾", "");
                                builderp.Replace("ó", "ó");
                                builderp.Replace("                                            ", "");
                                builderp.Replace("                                        ", "");
                                builderp.Replace("                                    ", "");
                                builderp.Replace("\n-", "-");
                                builderp.Replace("\n\n", "\n");
                                tekst_obrobiony = builderp.ToString();


                            }
                            aktualizacja_info(Convert.ToInt32(id), tekst_obrobiony);
                           

                        }
                        catch
                        {

                        }
                        
                    }
                }
            }

            finally
            {
                con.Close();
            }







        }

        public void aktualizacja_info(int id, string tekst_obrobiony)
        {
            
            var connetionString = @"Data Source=TESTOWY\SQLEXPRESS;Initial Catalog=wyklady_test;Integrated Security=True";

            using (var con1 = new SqlConnection(connetionString))
            using (var cmd1 = con1.CreateCommand())
            {
                cmd1.CommandText = @"UPDATE [wyklady_test].[dbo].[OrderBook_Prod] SET [informacja] = '" + tekst_obrobiony + "' WHERE [Id] = " + id;

                MessageBox.Show(cmd1.CommandText.ToString());

                con1.Open();
                cmd1.ExecuteNonQuery();

            }
        }

I teraz tak ten kod działa idealnie jak chcę żeby działał wszystko zapisuje do bazy ale jak tylko zmienię pierwszego string'a sql z:

SELECT [Id] FROM [wyklady_test].[dbo].[OrderBook_Prod] WHERE [Id] > 100

na

SELECT [Id] FROM [wyklady_test].[dbo].[OrderBook_Prod] WHERE [Id] > 100 and [informacja] != 'Brak' 

No to dostaję przy próbie UPDATE komunikat że serwer SQL nie odpowiada a przecież przy update nic nie zmieniam??


cmd1.CommandText = @"UPDATE [wyklady_test].[dbo].[OrderBook_Prod] SET [informacja] = '" + tekst_obrobiony + "' WHERE [Id] = " + id;

1

zrob na sql (zamiast using i zrob dispose na koncu) try { } catch (Exception ex) {} i zobacz co masz pod ex

0

Dzięki kolego... okazało się że w pobieranym stringu są znaczniki ' i wystarczyło je usunąć i szafa gra. Był jeszcze jeden problem ale to już ze specyfiką strony ale bardzo dziękuję za nakierowanie.
Pozdrawiam
PYJTER

1 użytkowników online, w tym zalogowanych: 0, gości: 1