Laden...
R
Benutzerbeschreibung

Forenbeiträge von redeye Ingesamt 66 Beiträge

24.02.2006 - 11:21 Uhr

.. ne .. kannste natürlich alles in eine Prozedur schreiben ...

Create Procedure InsertData
@rtbReportText_Report_Key,
@rtbReportText_Question_Index
--weiter Parameter
as
begin

if( Select count(*)
from rtbReportText
where rtbReportText_Report_Key = @rtbReportText_Report_Key and
rtbReportText_Question_Index = @rtbReportText_Question_Index
) = 0
begin
-- hier Code für Insert
end
else
-- abbrechen

end

lg
michi

24.02.2006 - 10:08 Uhr

Hallo,

da du ja für deine Insert-Prozedur @rtbReportText_Report_Key und @rtbReportText_Question_Index übergeben wirst, kannst du beide Schritte, also überprüfen, obs den Eintrag schon gibt sowie das Insert in einem Statement abhandeln.

Ändere deine SP SearchReportText folgenderweise ...

if( Select count(*)
from rtbReportText
where rtbReportText_Report_Key = @rtbReportText_Report_Key and
rtbReportText_Question_Index = @rtbReportText_Question_Index
) > 0
return 1
else
return 0

... dann schaut des in der Insert-Prozedur so aus ...

create Procedure InsertData
as begin
declare @ergebnis int

set @ergebnis = SearchReportText @rtbReportText_Report_Key, @rtbReportText_Question_Index

if(@ergebnis = 0)
begin
--hier Code für Insert
end
else
--abbrechen

end

.. so sollte des funktionieren ... i hoff es is verständlich

18.05.2005 - 14:34 Uhr

.. hmm .. bringt ihm das was, wenn er in der 2ten Klasse ne instanz von der ersten macht, ich mein .. ja .. er kommt schon aufs property, aber es is ja ne neue Instanz .. von dem her "verliert" er die Werte ... ich würds über den Konstruktor versuchen ...

18.05.2005 - 14:28 Uhr

.. würd ich so nicht sagen .. string.empty liefert nen leerstring .. also "" .. und er brauch aber ein Leerzeichen .. also würd ich sagen .. konstante definieren und mit der arbeiten ...

18.04.2005 - 13:29 Uhr

[Threadnachvorhol]

14.04.2005 - 15:21 Uhr

Hallo.

Folgendes Problem.:
Ich hab ne Webanwendung in der ich mir eine Ordnerstruktur auslese und dann in weiterer Folge strukturiert darstelle, soweit sogut.

Jetzt kommt aber die Windows-Security ins Spiel, und genau da liegt das Problem, ich komm einfach nicht drauf, wie ich es machen kann, dass ich ermittle welche Windosws-User den Ordner "sehen" dürfen und welche nicht, den aktuellen Windows-User hol ich mir, der is auch korrekt.

Geht das auch über DirectoryInfo bzw. FileInfo oder muss ich da ganz wo anders ansetzen .. bitte um Antworten, is sehr sehr dringend.

12.07.2004 - 17:55 Uhr

hmm .. mal so ausm bauch heraus würd ich sagen, dass du die Collection erneuern musst, um immer den aktuellen Zustand deiner Objekte drinne zu haben ..

06.07.2004 - 16:07 Uhr

Also ... ich würds so machen, dass ich in der Applikation, wo auf die Klasse zugegriffen wird , einen try-catch-block herummache .. sollte in der Klasse was schief gehen wird die Exception in der Applikation abgefangen und angezeigt (e.Message ... )

lg
michi

30.06.2004 - 13:56 Uhr

Original von ernie04
[ironie]Aber vielleicht wäre das Spiel für Euch Schweizer einfach nur zu schnell, denn man sagt euch ja eine gewisse Behäbigkeit nach! 😉 😉 [/ironie]

Da kommts aber auf den Kanton an, oder?

29.06.2004 - 10:17 Uhr

Freut mich, dass ich dir helfen konnte.

lg michi

29.06.2004 - 09:54 Uhr

Also .. ich probiers mal ..


Form Zeit=new Zeit(d_KabZeit);

Mit dieser Zeile instanziierst du ein neues Objekt der Klasse Zeit.cs, diese Klasse hat nun 2 Konstruktoren, den Default-Konstruktor (automatisch generiert) und den neuen Konstruktor (von uns).


public Zeit(double m_tmp_zeit)
{
	InitializeComponent();
        // m_glo_zeit ist globale Variable von Zeit.cs
	m_glo_zeit = m_tmp_zeit;
}

Hier wird nun der neue Konstruktor verwendet, dieser macht im Prinzip nichts anderes, als eine globale Variable ( private double m_glo_zeit ) zu initialisieren .. d.h. einen gültigen Wert zuzuweisen. In dem Fall kommt dieser Wert aus deiner Hauptform (d_KabZeit), die Variable m_glo_zeit hat also den Wert von d_KabZeit ..

Ich hoffe es bringt etwas Klarheit ..

lg
michi

29.06.2004 - 08:20 Uhr

Hallo.

Ich hab ma des angschaut .. und hab folgendes gmacht:

Neuer Konstruktor für Zeit.cs :


         public Zeit(double m_tmp_zeit)
	{
		InitializeComponent();
                // m_glo_zeit ist globale Variable von Zeit.cs
		m_glo_zeit = m_tmp_zeit;
	}

OnClick von Button "Zeitberechnungen" auf Hauptform:


         public void btn_Zeit_Click(object sender, System.EventArgs e)
	{
		double  d_KabZeit=(BerechneZeit(dat_Ankunft.Value.ToOADate(),dat_Abflug.Value.ToOADate()));
                Form Zeit=new Zeit(d_KabZeit);
		Zeit.Show();
	}

OnClick für Button "Test " auf Form Zeit :


         private void btn_Test_Click(object sender, System.EventArgs e)
	{
		// Hier soll zu TestZwecken das Label 'lbl_Test'
		// den Wert der Variablen anzeigen aus Form 'Haupt'
		// So in der Art 'lbl_Test.Text=Haupt.d_KabZeit...'

		lbl_Test.Text = m_glo_zeit.ToString();
			
	}

Du übergibts einfach dem Konstuktor von Zeit.cs die benötigten Werte und kannst dann mit denen im neuen Form weiterarbeiten ...

lg
michi

23.06.2004 - 11:53 Uhr

Hallo zusammen,

ich wollt mal fragen, ob hier schon mal wer sowas gemacht hat bzw. ob wer zumindest Informationen drüber hat.

lg
michi

04.06.2004 - 09:28 Uhr

Hmm .. zum Zählen der Zeilenumbrüche eine Idee:



//Beispiel-String
string m_tmp_str = "Part1" + Environment.NewLine + "Part2" + Environment.NewLine + "Part3";

//String aufteilen
string[] m_tmp_arr = m_tmp_str.Split("\n".ToCharArray());

//Anzahl der Zeilenumbrüche bestimmen
if(m_tmp_arr.Length > 0)
   int m_tmp_count = m_tmp_arr.Length -1


Vielleicht hilfts was ..

lg
michi

02.06.2004 - 10:15 Uhr

Hmm .. hab ma was überlegt ...



//Globale Variable
private string m_glo_rtbText = String.Empty;

//Enter-Event der RichtTextBox
private void rtb_text_Enter(object sender, System.EventArgs e)
{
	m_glo_rtbText = rtb_text.Text;
}

//OnClick-Event des Button
private void btn_rtbUndo_Click(object sender, System.EventArgs e)
{
	if(rtb_text.Text != m_glo_rtbText)
	{
		rtb_text.Text = m_glo_rtbText;
	}
	
}


Im Prinzip funzts genau so wie des Undo (glaub ich halt) .. einfach mal probieren ..

lg
michi

02.06.2004 - 10:06 Uhr

Hallo.

So hab ein kleines (immer größer werdendes) Problem bzgl. Zeilenumbrüchen und Sql-Statements.

Also .. meine Applikation liest sich alle Scripts (Tabellen, PK, FK, Trigger, Stored Procedures, ..) von einer DB ein und schreibt diese Scripts in .txt - Dateien.

Soweit sogut .. nun will ich aber diese Scripts auch wieder gegen eine DB ausführen .. und da gibts dann probleme .. wenn ich die Scripts auslese .. hab ich immer den \n\r - Zeilenumbruch drinnen, wenn ich diesen entferne dann passierts mir häufig, dass Kommentarzeilen, die mit -- beginnen abgeschnitten werden und dies ist dann kein gültiger SQL-Code .. ich hoffe ihr versteht was ich meine .... bin für jede Hilfe dankbar.

lg
michi

02.06.2004 - 09:58 Uhr

Aha .. ja .. anderen Lösungsweg überlegen .. sag mal .. was genau musst / sollst / willst du eigentlich machen .. post das mal .. hmm?

02.06.2004 - 09:17 Uhr

Ja .. ich weiß net .. solltest dir vielleicht mal ein paar Sachen bzgl. Richtextbox und TextChanged usw. durchschauen .. vielleicht steht da was drinnen .. ne?

02.06.2004 - 08:38 Uhr

Hmm .. ich hab das mal probiert und bei mir schauts so aus .. wenn ich das TextChanged - Event leer lasse wird Undo ausgeführt .. sobald ich aber innerhalb dieses Ereignisses auf den Text der RichTextbox zugreife (und nur dann) wird Undo nicht mehr ausgeführt .. is schon komisch ..

01.06.2004 - 16:45 Uhr

Schau mal hier nach ..

lg michi

01.06.2004 - 16:16 Uhr

Wollte auch den gleichen Link posten .. 🙁

01.06.2004 - 16:11 Uhr

Also .. ich habs mal probiert .. bei mir liefert es die korrekte Anzahl an Tagen ..



//Eintrag in Textbox zu Datum konvertieren
DateTime myTime = System.Convert.ToDateTime(textBox1.Text);

//Zeitspanne berechnen
TimeSpan mySpan = DateTime.Now -  myTime;

//Zeitspanne ausgeben
MessageBox.Show("Differenz zwischen den beiden Daten beträgt: " + mySpan.Days.ToString());


.. den ganzen Moder dann einfach ins OnClick von am button geben oda sowas in der Art ..

lg
michi

28.05.2004 - 11:22 Uhr

Danke zuerst mal für eure Anworten .. bin mir noch nicht ganz im Klaren darüber, ob ich nun Threads nehme (sehr starke Tendenz in diese Richtung) oder nicht .. is aber jetzt soundso egal, da ich nur mehr 30mins arbeiten werde .. 😁

28.05.2004 - 10:22 Uhr

Danke für den Tip .. hab eh schon ein paar Applikationen mit Threading implementiert .. aber mein Projektleiter meint, dass Threading eher ein heikles Thema ist und er mir davon abraten würde. Also muss/sollte ich nach einer anderen möglichkeit suchen .. und werde hoffentlich auch eine finden.

28.05.2004 - 09:29 Uhr

Hallo.

So .. es geht um folgendes:



//OnClick - Event für Button "btn_exImp_start"
private void exImp_click(object sender, System.EventArgs e)
{
	if(rbt_export.Checked)
		doExport();
	else
	{
		doImport();
	}
}


Wie bereits ersichtlich steht oben das On-Click-Event für einen Button auf meiner Form.
So .. wenn dieser geklickt wird, soll entweder doExport() oder doImport() ausgeführt werden .. sieht man auch noch.

Und nun zu meinem Problem:

Wenn ich also auf den Button klicke, dann reagiert die Form so lange nicht, bis alle Operationen der jeweiligen Prozedur ausgeführt sind.
Ich habe mir jetzt überlegt, diese Prozeduren auszulagern, sodass sie nicht direkt in der Klasse der Form laufen .. nur möchte ich vorher noch gewissheit einholen, ob dies der richtige weg ist, das "einfrieren" der Form zu verhindern. Ich hoffe, ich hab mich verständlich ausgedrückt .. bin dankbar für jeden tip.

lg
michi

26.05.2004 - 15:38 Uhr

Hmm .. so ganz frei von der Leber weg würd ich sagen, dass das mittels einer Exception gehen würde ..



	for(i=0;i<20;i++)
	{
		if(i == 5)
		{
			throw new Exception("i ist 5");
		}
	}


lg Michi

26.05.2004 - 11:02 Uhr

Mhm .. werd ich eh machen .. werd C1.C1Zip verwenden .. mal schauen.

lg
michi

26.05.2004 - 10:30 Uhr

Hallo.

Also .. du musst einfach beim Erzeugen des Streamwriters neben dem FileName als zweites Argument true übergeben .. dieses regelt, ob der Text angehängt oder nicht ... schaut dann in etwa so aus:



//StreamWriter erstellen
//m_tmp_fileName --> Dateiname
System.IO.StreamWriter myWriter = new System.IO.StreamWriter(m_tmp_fileName, true);

//Schreiben
myWriter.WriteLine(m_tmp_content);

//StreamWriter schließen
myWriter.Close();


lg
michi

26.05.2004 - 09:54 Uhr

Hallo.

Ich hätte da wieder mal was udn zwar:

Die Applikation, an der ich arbeite erzeugt mehrere Files mit verschiedenem Inhalt. Mein Projektleiter hat die Idee, dass diese Files zusammengepackt werden sollen und zwar in eine .CAB Datei. So .. ich hab nun überhaupt keine Ahnung wie ich sowas angehen soll .. und wäre für jede Hilfe mehr als dankbar. Es sollte also möglich sein, eine .CAB-Datei zu erzeugen und diese dann auch wieder zu öffnen um die Files auslesen zu können.

lg
michi

25.05.2004 - 11:38 Uhr

Naja .. gfunden hab ich nichts fertiges in der Richtung .. muss ichs halt selbst implementieren, dazu gibts ein paar Links, falls es wen interessiert:

http://www.codeproject.com/database/sqldmo.asp

http://www.csharphelp.com/archives2/archive342.html

lg michi

25.05.2004 - 10:18 Uhr

Die Funktion findest du in der Klasse "ZipForm.cs" bei Zeile 1672 (zumindest is es bei mir so) .

lg
michi

24.05.2004 - 17:01 Uhr

Hmm .. so jetzt hab ichs glaub ich:

In der 3.ten Zeile nicht txbMain.SelectedText.Remove sondern txbMain.Text.Remove .. dann sollts laufen.

lg michi

24.05.2004 - 16:38 Uhr

Der Fehler liegt hier:

 int Length = tbxMain.SelectionStart + tbxMain.SelectionLength; 

sollte so aussehen

 int Length = tbxMain.SelectionLength; 

lg michi

24.05.2004 - 14:07 Uhr

Hallo zusammen.

Grundsätzlich such ich ein Programm/Tool etc. mit dem man Backups von Datenbanken erstellen kann, diese sollen selektiv zu erstellen sein, d.h. man kann z.B. auswählen, welche Tabellen man in die Sicherung mit aufnehmen kann usw.

Ich hab im Netz schon a bissl gsucht, aber mir is net wirklich was untergekommen .. deshalb die Frage hier ob sich schon jemand mal mit sowas befasst hat bzw. ob wer Links zu diesem Thema hat.

lg & danke
michi

24.05.2004 - 13:28 Uhr

Hallo.

Ich hab das so verstanden .. du klickst im Datagrid doppelt und möchtest dann (wahrscheinlich) die Werte der aktuellen Zeile in die Textfelder von Form1 übernehmen.

Also .. grundsätzlich dürfte das so zu bewerkstelligen sein:

Meinem Grid liegt als Datenquelle ein Dataset mit einem Table (m_glo_table) zugrunde.

1.) Konstruktor von Form1 implementieren
2.) Zuweisung der einzelnen Text-Felder im Load-Event von Form1
3.) DoppelKlick-Event von Datagrid implementieren

ad 1.)
Im meinem Beispiel hab ich einfach eine DataRow im Konstruktor übergeben.


//Globale Variable m_glo_row
private DataRow m_glo_row;

//Konstruktor von Form1
public Form1(DataRow m_tmp_row)
{
	InitializeComponent();
	m_glo_row = m_tmp_row;

}

ad 2.)
Auf Form2 befinden sich 3 Textboxen


//Load von Form2
private void Form2_Load(object sender, System.EventArgs e)
{
	txb_entry1.Text  = m_glo_row[0].ToString();
	txb_entry2.Text  = m_glo_row[1].ToString();
	txb_entry3.Text  = m_glo_row[2].ToString();
}

ad 3.)
Doppelklick geht nur auf ganze Zeile, nicht auf einzelne Zellen


//Doppelklick-Event von Datagrid
private void wdg_dataGrid_DoubleClick(object sender, System.EventArgs e)
{

        //aktuelle Zeile von Grid aus DataTable holen
	DataRow m_tmp_row =m_tmp_table.Rows[wdg_dataGrid.CurrentRowIndex];

        //Neue Instanz von Form1
        //Als Parameter für den Konstruktor wird m_tmp_row übergeben
	Form1 m_tmp_form = new Form1(m_tmp_row);
	m_tmp_form.Show();
	
}

... hoffentlich hilfts.

lg michi

19.05.2004 - 13:00 Uhr

Hmm .. dann werd ich mich auch mal vorstellen.

Alter: 19

Ausbildung: VS & HS & HTL für EDV & Organisation

Beruf: Software-Entwickler (C#, VB.net, VBA, ASP, ASP.net, TSQL, PSQL) im Bereich Business-Intelligence seit August 2003

Hobbys: Gitarre, Musik hören (zur Zeit vorwiegend Iron Maiden, Judas Priest usw. und eh schon immer Bob Marley), Pflanzen und noch vieles mehr (nur kein Sport)

... mehr fallt mir jetzt nicht ein ..

lg
Michi

19.05.2004 - 10:01 Uhr

Sry .. aber ich find, dass so posts wie der letze von Leonidas voll für nix sin, weil wenn ma des für armselig hält, dann sollte man halt eine bessere Lösung posten .. das dürfte glaube ich im Sinne aller beteiligten liegen.

lg
michi

18.05.2004 - 16:44 Uhr

Danke erstmal für den Link .. hab nur mal kurz drübergschaut .. wenns was bringt, meld ich mich.

lg
michi

18.05.2004 - 16:40 Uhr

Ja .. selbst implementieren is schon eine Möglichkeit .. aber da "durchsucht" man das Array noch öfter als wenn man gar nix macht und gleich nach dem Eintrag sucht .. weil zuerst auf Länge filtern (ganzes Array durchlaufen) und dann nochmal nach dem Eintrag suchen (eingeschränktes Array durchlaufen) .. das gfallt mir gar net

17.05.2004 - 14:00 Uhr

Hallo.

Also .. ich bräuchte eine Möglichkeit, wie ich folgendes von meinem Programm aus auslesen kann:

* Alle Server, die ich auf meinem Rechner registriert habe
* Alle DBs zu jedem Server

Das ganze soll da zu dienen, so eine Art Backup-Manager für einzelne DBs zu implementieren.

Danke & lg michi

17.05.2004 - 13:50 Uhr

Also .. ich weiß jetzt nicht, ob das 100%zig funzt, aber der Sinn dürfte klar sein.



//Verbindung zur DB
string m_conn_str = "Provider=MySQLProv;Data Source=mydb;User Id=UserName;Password=asdasd;" 

//Select-Statement
string m_sql_str = "Select Inhalt From Test"; 

//Neue Verbindung erstellen und öffnen
OleDbConnection m_tmp_conn = new OleDbConnection(m_conn_str);
m_tmp_conn.Open();

//OleDbCommand-Objekt erzeugen
OleDbCommand myCommand = new OleDbCommand(m_sql_str, m_tmp_conn);

//ausführen
OleDbDataReader myReader = myCommand.ExecuteReader();

//Auslesen
while (myReader.Read())
{
   //irgendwas machen
}
	

lg
michi

17.05.2004 - 12:31 Uhr

Ja .. ich würd mal sagen, dass .Net diese resx-Dateien erstellt (z.B. Formular - resx - Dateien bei einer Windows -Anwendung).

17.05.2004 - 12:13 Uhr

Hallo.

Ich wage hier mal zu sagen, dass man ein Array nicht filtern kann.
Du könntest diese Filterung zwar auch "implementieren" (2tes Array erzeugen, dass nur mehr Elemente mit bestimmter Länge enthält) aber ich glaub, dass das ebenso nicht ideal ist, weil du dann ja zuerst durch das Original-Array iterieren musst und dann in weiterer Folge nochmal durch das neue Array.

11.05.2004 - 13:34 Uhr

Ok .. das mit den einzelnen Zellen bearbeiten hab ich mittlerweile selbst rausgefunden .. danke .. nur was meinst du mit Grid selbst erstellen .. bitte um Erklärung.

thx & lg
michi

11.05.2004 - 13:06 Uhr

Hallo zusammen.

So .. da heute ja "DataGrid-Day" ist, kommt noch was von meiner Seite.

Also .. da das Projekt, an dem ich arbeite möglichst benutzerfreundlich sein soll, muss man beim Grid Zeilen mit Strg+C und Strg+V kopieren bzw. einfügen können. Da ich beim Datagrid nun schon etwas skeptisch bin, möchte ich jetzt hier mal fragen, ob sowas in die Richtung überhaupt möglich ist .. bin für jede Antwort dankbar.

thx & lg
michi

11.05.2004 - 11:13 Uhr

Mhm .. xqgene hat recht .. es ging im Prinzip nur um den Doppelklick .. und anscheinend geht das net mit dem Datagrid.

11.05.2004 - 11:10 Uhr

Hmm .. danke .. hab mich mitm Projektleiter abgesprochen und machs mit rechter Maustaste ..

11.05.2004 - 10:59 Uhr

meinst du en Doppelklick oder es Laden?

11.05.2004 - 10:36 Uhr

Hallo zusammen.

Also .. ich hab da folgendes Problem:

Die Anwendung, die ich geschrieben hat, is im Prinzip ein Wartungstool für eine DB und da gibts dann halt auch so Spalten, die Informationen über Spalten (Metadaten usw. ) beinhalten.
Als Darstellungsform hab ich ein Datagrid gewählt und genau da liegt das Problem. Ich sollte nämlich mittels Double-Click auf eine Zelle, den Wert dieser Zelle in so eine Art Editor laden. Was das laden usw. anbelangt gibts keine Probleme, aber der Double-Click auf die Zelle bereitet mir Kopfzerbrechen .. ich muss wissen, welche Zelle das war und entsprechend der Zelle dem "Editor" verschiedene Werte übergeben.

thx & lg
michi

03.05.2004 - 14:42 Uhr

Ja .. Xqgene hat recht .. da muss man den Hashtable durchlaufen. Eine andere Möglichkeit wäre, dass du eine SortedList anstatt dem Hashtable nimmst .. da hast du mehr möglichkeiten ..