C#.NET

Член од
5 август 2006
Мислења
163
Поени од реакции
8
Податоците што ги печати се оние соодветните, тоа го проверив уште одма, туку промените се прават, но не успеваат да се зачуваат постојано, ако ја стартувам од дебуг фолдерот извршната верзија и направам промени тие ќе си се запамтат, но се губат ако пример повторно ја дебагирам од Visual Studio, што тоа не би требало да се прави.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Хмм... незнам до што би можело да биде, единствено што ми паѓа на ум е тоа што го кажав во претходнот пост, значи ако базата ја имаш додадено преку визардот на вижуал студиото, во тој случај после секое дебагирање базата ќе си останува онаква каква што била во моментот кога си ја додал во проектот, а ако си ја додал „рачно“ во проектот тогаш податоците ќе се зачуваат за стално.

Значи ако си ја додал преку визардот ондак тоа е проблемот, а ако си ја додал „рачно“, ондак незнам што би можело да биде. :/
 
Член од
5 август 2006
Мислења
163
Поени од реакции
8
Ја имам додане преку wizard, на DataGridView-то со опциите што ги има, а како би се додало рачно?
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Вака, најпрвин ќе направиш база, потоа во кодот на апликацијата при стартување ќе иницијализираш конекција со со базата, не преку визардот на вижуал студиото, туку „рачно“:
(Значи не во 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");
Значи со ваквиот начин на воспоставување врска со базата, базата е независна од апликацијата и секои промени ќе се зачувуваат, нема да се ресетираат во првобитна состојба како што е случај доколку базата ја додадеш преку визардот.

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

Незнам вака колку и дали бев јасен, али начинот за да ја направиш базата независна од апликацијата е тој, доколку имаш некој нејасен дел слободно можеш да прашаш, па се надевам дека за истото ќе се најде решение. :)
 
Член од
5 август 2006
Мислења
163
Поени од реакции
8
А како базата да ја ставам во проектот, пак ќе морам преку Data->Add New Data Source или?
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Не бе друже, ако е серверска базата ондак го креваш серверот и пичиш, а ако е фајл ондак го носиш фајлот (базата) во исти фолдер (или во апликацијата ќе користиш релативна патека до базата) со апликацијата и пичиш. :)
 
Член од
5 август 2006
Мислења
163
Поени од реакции
8
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.
 
Член од
5 август 2009
Мислења
1.295
Поени од реакции
484
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.
20 колони по 2 реда за опис и не е така многу. Сепак немораш да ги додефинираш колоните, но во тој случај нема да имаш „читлив“ наслов на колоната, соодветна ширина и сл. Можеш да го користиш само делот за додавање на нови колони нели ... ама што се стотина реда за успехот која следи? :)
 
Член од
1 февруари 2007
Мислења
57
Поени од реакции
1
Во ред, се снјадов, но зошто не може да работи исто ако е и преку wizard, зашто ајде да имаш две три колони и така и така, ама еве во мојава база имам околу 20 колони, и сега јас за сите тие треба рацно да ги поплнувам именувам и се останато, освен овој начин рачно да се внесуваат можеби постои и друг, но кој би можел да биде.
Незнам дали најде подобро решение но сепак постои...

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

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

После додавањето извршувањето на DataAdapter врз DataTable и додавање на DataTable на DataGridView-то како DataSource ќе ги имаш вече со средени називи на колони...Она што малце ќе ти преостане е на одредени колони да им подесиш ширина...
 
Член од
9 мај 2008
Мислења
184
Поени од реакции
7
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 :)
 

Синдикат

Мајгада?!
Член од
22 август 2005
Мислења
3.110
Поени од реакции
180
Ми треба помош од некој упатен во C#, кодот нема да го постирам зошто е огромен, ама ќе му го пуштам на некој ако знај за шо се работи и мисли дека можи да ми помогни.

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

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

Ајде вервам во вас и фала од напред.
 
Член од
5 август 2006
Мислења
163
Поени од реакции
8
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,
 
Член од
1 февруари 2007
Мислења
57
Поени од реакции
1
Друже доколку е ова целото парче код кое прави update, не гледам никаде:

try{
if(komanda.Connection.State != ConnectionState.Open) komanda.Connection.Open();
komanda.ExecuteNonQuery();
} catch (Exeption ex) {
throw ex;
}
finnaly{
komanda.Connection.Close()
}
 
Член од
5 август 2006
Мислења
163
Поени од реакции
8
Друже доколку е ова целото парче код кое прави 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) и сега се е во ред.
 

bobipp

Let's cook!
Член од
15 август 2008
Мислења
11.778
Поени од реакции
6.751
Совети за учење на ASP.NET со C# ? Засега тешко ми оди.... :(
 

Kajgana Shop

На врв Bottom