C#.NET

  • Креатор на темата Креатор на темата back_rest
  • Време на започнување Време на започнување
Податоците што ги печати се оние соодветните, тоа го проверив уште одма, туку промените се прават, но не успеваат да се зачуваат постојано, ако ја стартувам од дебуг фолдерот извршната верзија и направам промени тие ќе си се запамтат, но се губат ако пример повторно ја дебагирам од Visual Studio, што тоа не би требало да се прави.
 
Хмм... незнам до што би можело да биде, единствено што ми паѓа на ум е тоа што го кажав во претходнот пост, значи ако базата ја имаш додадено преку визардот на вижуал студиото, во тој случај после секое дебагирање базата ќе си останува онаква каква што била во моментот кога си ја додал во проектот, а ако си ја додал „рачно“ во проектот тогаш податоците ќе се зачуваат за стално.

Значи ако си ја додал преку визардот ондак тоа е проблемот, а ако си ја додал „рачно“, ондак незнам што би можело да биде. :/
 
Ја имам додане преку wizard, на DataGridView-то со опциите што ги има, а како би се додало рачно?
 
Вака, најпрвин ќе направиш база, потоа во кодот на апликацијата при стартување ќе иницијализираш конекција со со базата, не преку визардот на вижуал студиото, туку „рачно“:
(Значи не во OnLoad евентот, туку во Initialize)
Код:
SqlConnection konekcija = new SqlConnection();
                konekcija.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\StandardiSQL.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

Потоа, ќе направииш една функција за поврзување на базата со DataGridView, таа што ти ја пишав во претходните постови:

Код:
// Значи наместо со визардот на DataGridView-от, ти со овој код ќе воспоставиш врска на DataGridView-от со базата 
public void loadDataGrid(string sqlQueryString)
        {
            konekcija.open();
            OleDbCommand SQLQuery = new OleDbCommand();
            DataTable data = null;
            dataGridView1.DataSource = null;
            SQLQuery.Connection = null;
            OleDbDataAdapter dataAdapter = null;
            dataGridView1.Columns.Clear(); // <-- clear columns
            //---------------------------------
            SQLQuery.CommandText = sqlQueryString;
            SQLQuery.Connection = database;
            data = new DataTable();
            dataAdapter = new OleDbDataAdapter(SQLQuery);
            dataAdapter.Fill(data);
            dataGridView1.DataSource = data;
            dataGridView1.AllowUserToAddRows = false; // remove the null line
            dataGridView1.ReadOnly = true;
            dataGridView1.Columns[0].Visible = false;

            // DataGridView Kolona 1...Име на Филм ###
            dataGridView1.Columns[1].Width = 186;
            dataGridView1.Columns[1].HeaderText = "Наслов";

            // DataGridView Kolona 1...Име на Издавач ###
            dataGridView1.Columns[2].HeaderText = "Издавач";

            // DataGridView Kolona 3...Гледан ###
            dataGridView1.Columns[3].Width = 72;
            dataGridView1.Columns[3].HeaderText = "Гледан";

            // DataGridView Kolona 4...Гледан ###
            dataGridView1.Columns[4].Width = 64;
            dataGridView1.Columns[4].HeaderText = "Година";

            // DataGridView Kolona 5...Жанр ###
            dataGridView1.Columns[5].Width = 81;
            dataGridView1.Columns[5].HeaderText = "Жанр";

            // insert edit button into datagridview
            editButton = new DataGridViewButtonColumn();
            editButton.HeaderText = "Промени";
            editButton.Text = "Промени";
            editButton.UseColumnTextForButtonValue = true;
            editButton.Width = 80;
            dataGridView1.Columns.Add(editButton);

            // insert delete button to datagridview
            deleteButton = new DataGridViewButtonColumn();
            deleteButton.HeaderText = "Бриши";
            deleteButton.Text = "Бриши";
            deleteButton.UseColumnTextForButtonValue = true;
            deleteButton.Width = 80;
            dataGridView1.Columns.Add(deleteButton);
            konekcija.close();
        }

Значи овој код е за MS Access база, ти само примени го за SQL Server...

Откако ќе го направиш тоа, во OnLoad евентот ќе ја повикаш оваа функција со влезен параметар SQL команда за селектирање на податоците:

Код:
loadDataGrid("select * from table_name");

Значи со ваквиот начин на воспоставување врска со базата, базата е независна од апликацијата и секои промени ќе се зачувуваат, нема да се ресетираат во првобитна состојба како што е случај доколку базата ја додадеш преку визардот.

Исто така ќе направиш и функции за апдејтирање, бришење и слично на записи во базата и по потреба ќе ги ставаш во евенти, зависи што сакаш да направиш. :)

Незнам вака колку и дали бев јасен, али начинот за да ја направиш базата независна од апликацијата е тој, доколку имаш некој нејасен дел слободно можеш да прашаш, па се надевам дека за истото ќе се најде решение. :)
 
А како базата да ја ставам во проектот, пак ќе морам преку Data->Add New Data Source или?
 
Не бе друже, ако е серверска базата ондак го креваш серверот и пичиш, а ако е фајл ондак го носиш фајлот (базата) во исти фолдер (или во апликацијата ќе користиш релативна патека до базата) со апликацијата и пичиш. :)
 
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.
 
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.

20 колони по 2 реда за опис и не е така многу. Сепак немораш да ги додефинираш колоните, но во тој случај нема да имаш „читлив“ наслов на колоната, соодветна ширина и сл. Можеш да го користиш само делот за додавање на нови колони нели ... ама што се стотина реда за успехот која следи? :)
 
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.

Незнам дали најде подобро решение но сепак постои...

Во селектот си ги пишуваш онака како што сакаш и по кој редослед ти одговараат на пример:

SELCET Ime AS [Име], Prezime AS [Презиме] FROM tbl_Users

После додавањето извршувањето на DataAdapter врз DataTable и додавање на DataTable на DataGridView-то како DataSource ќе ги имаш вече со средени називи на колони...Она што малце ќе ти преостане е на одредени колони да им подесиш ширина...
 
wlansecret = "Zgx6M3jfZXcJ3AhvS3LC"
challenge= "393c1a99dd642b788cd3b36f3c6ff770"
unencrypted password= "password"

<?php

$acquired_password = "password";
$hexchal = pack ("H32", $_GET[challenge]);
$wlansecret = "Zgx6M3jfZXcJ3AhvS3LC";

if (isset ($wlansecret)) {
$newchal = pack ("H*", md5($hexchal . $wlansecret));
} else {
$newchal = $hexchal;
}

$response = md5("\0" . $acquired_password . $newchal);
$newpwd = pack("a32", $acquired_password);
$MD5password = implode ("", unpack("H32", ($newpwd ^ $newchal)));

?>

Dali bi mozel nekoj da go prevede kodov vo C#

Odnapred blagodaram :)
 
Ми треба помош од некој упатен во C#, кодот нема да го постирам зошто е огромен, ама ќе му го пуштам на некој ако знај за шо се работи и мисли дека можи да ми помогни.

Значи задачата е да се напрај апликација шо кодира одреден текст и го декодира истиот. Апликацијата ја имам цела изработено и функционира, ама проблемот е друг. Методите Encrypt(string x) и Decrypt(string x) во презентацијата треба да се извикаат преку properties GetMyEncode и GetMyDecode дефинирани во interface IEncryptable. Својството GetMyEncode треба да дозволува исполнување по потреба (deferred call) преку delegate MyEncode.

Ако на некој му се познати термините нека ми објасни како точно треба да се дефинира. Се отепав во барање по интернетот некој пример за конкретна имплементација на deferred call не можам да најдам, а во книгата шо ја имам има само еден пример и тоа апстрактен шо не ми помага многу во конкретниот случај.

Ајде вервам во вас и фала од напред.
 
Pravam edna web aplikacija, podatocite od bazata se prikazuvaat vo GridView, no ne sakaat da se snimaat promenetite podatoci koga ke se klikne na Update(uredi), napraveno mi e tie koloni sto ne sakam da se promenuvaat na readonly=true, i nisto ne javuva ni greska ni exception, a pak ne sakaat da se zacuva, eve del od kodot koj se naoga vo metodata RowUpdating:

Код:
string sql = "UPDATE Standardi SET [BROJ_PROEKT]=@br_proekt, [CEN_CENELEC]=@cen, [ICS]=@ics, [BROJ_STR]=@br_str WHERE [REDEN_BROJ]=@id";

SqlCommand komanda = new SqlCommand(sql, konekcija);

        TextBox tb = (TextBox)gvStandardi.Rows[e.RowIndex].Cells[1].Controls[0];
        komanda.Parameters.AddWithValue("@br_proekt", tb.Text);
        komanda.Parameters.AddWithValue("@id", gvStandardi.Rows[e.RowIndex].Cells[0].Text);

        tb = (TextBox)gvStandardi.Rows[e.RowIndex].Cells[2].Controls[0];
        komanda.Parameters.AddWithValue("@cen", tb.Text);

       tb = (TextBox)gvStandardi.Rows[e.RowIndex].Cells[8].Controls[0];
        komanda.Parameters.AddWithValue("@ics", tb.Text);

        tb = (TextBox)gvStandardi.Rows[e.RowIndex].Cells[9].Controls[0];
        komanda.Parameters.AddWithValue("@br_str", tb.Text);

I prethodno na istiot nacin imam raboteno i izmenite si se pravat, a sega voopsto ne se zacuvuvaat, sto bi mozelo da bide? Edinstvenata razlika od prethodno e sto GridView-to mi se naoga vo .ascx, odnosno pravam korisnicka kontrola koja posle toa moze da se koristi kako drag and drop komponenta na poveke stranici,
 
Друже доколку е ова целото парче код кое прави update, не гледам никаде:

try{
if(komanda.Connection.State != ConnectionState.Open) komanda.Connection.Open();
komanda.ExecuteNonQuery();
} catch (Exeption ex) {
throw ex;
}
finnaly{
komanda.Connection.Close()
}
 
Друже доколку е ова целото парче код кое прави update, не гледам никаде:

try{
if(komanda.Connection.State != ConnectionState.Open) komanda.Connection.Open();
komanda.ExecuteNonQuery();
} catch (Exeption ex) {
throw ex;
}
finnaly{
komanda.Connection.Close()
}

Не има и try, catch, finally, се е во ред со кодот, само што во page_load бев заборавил да ставам if(!isPostBack) и сега се е во ред.
 
Совети за учење на ASP.NET со C# ? Засега тешко ми оди.... :(
 

Kajgana Shop

Back
На врв Bottom