Laden...

Forenbeiträge von der_sharky Ingesamt 23 Beiträge

27.12.2020 - 17:27 Uhr

Hallo T-Virus. Die Doku verstehe ich nicht richtig. Deswegen habe ich hier die Frage gepostet. Heißt das dass die Tastatur wird angezeigt wenn ich zum Beispiel die Methode benutzt und ich auf Steuerelement tippe ?

Grüße

Auszug:

true, wenn der Tastaturfokus auf dieses Element gesetzt wurde;
false, wenn durch den Aufruf dieser Methode keine Fokusänderung erzwungen wurde.
Hinweise
Das Element muss in der Lage sein, den Fokus zu erhalten, damit dies funktioniert. Das Aufrufen des Fokus auf Offscreen-oder nicht realisierte Elemente hat ein nicht definiertes Verhalten.

27.12.2020 - 15:35 Uhr

Hallo zusammen ich habe eine Frage bezüglich der Focus Methode bei der Xamarin Forms. Wozu dient diese Methode ? Bsp:


Entry.Focus();

Vielen Dank

30.07.2020 - 11:48 Uhr

Hi JimStark du hast Recht. Eigentlich was ich wissen möchte ist wie ich innerhalb des Codes alles steueren kann. Wenn Parameter X ausgewählt wurde dann mach das und das. Übrigens Danke für den Link. Leider dort wird nur gezeigt wie man alle Parameter in der Konsole ausgeben kann.

30.07.2020 - 11:36 Uhr

Hallo zusammen,

ich beschäftige mich gerade mit der Kommandozeilenparameter in C# und Visual Studio. Im Visual Studio habe ich eine einfache Anwendung erstellt und testmässig drei Parameter eingegeben. Später möchte ich in der Eingabeauforderung die Anwendung (exe) starten. Je nach ausgewählten Parameter sollte die Anwendung vershiedener Text ausgeben.

Meine Frage:
Wie benutze ich die Parameter im C# Code bzw. wie kann ich bestimmen was passiert wenn einen Parameter ausgewählt wurde ? Soll ich If-Anweisungen benutzen ? So ist der Code :
Danke !


 static void Main(string[] args)
        {

  

            var arg1 = args[0];
            var arg2 = args[1];
            var arg3 = args[2];

//Wie kann ich es  hier programmieren, wenn ich in der Eingabeauforderung z.B die Parameter eigebe dass sich die Anwedung entprechend verhält ? Wenn Parameter X ausgewählt wurde dann mach das und das

            if (?)
                Console.WriteLine("Das ist a");
            Console.ReadLine();

            if (?)
                Console.WriteLine("Das ist b");
            Console.ReadLine();

            if (?)
                Console.WriteLine("Das ist c");
            Console.ReadLine();
}

15.07.2020 - 15:01 Uhr

Hallo zusammen,

wir haben im Firmennetzwerk eine WPF-Anwendung, die Reports für die Kollegen erstellt. Bis jetzt musste jeder selbst sein Report erstellen. Ich möchte für paar Reports die manuelle Erstellung automatisieren und zwar indem in bestimmter Uhrzeit die Anwendung selbst startet und einen Report erstell. Manuell müsste man paar Buttons klicken und danach erstellt die WPF Anwendung eine Excel-Datei befüllt mit Daten. Das sollte wegfallen. Die Anwendung hat mehreren C# Projekte in Visual Studio und dort stehen die jeweiligen Report-Klassen. Wie könnte man dieser Problem lösen? Was bietet WPF bzw. Windows dafür ? Wie kann kann ich der Report auswählen der automatisch erstellt werden sollte. Vielen Dank !

05.05.2019 - 20:46 Uhr

Hallo MrSparkle,
danke dir für die Hilfe. Leider bekomme ich noch gleicher Fehler.
Beim debuggen mit ReSharper habe ich folgendes Problem angezeigt bekommen:

p.IstQuadratmeter=error CS0103: Der Name "p" ist im aktuellen Kontext nicht vorhanden.

und

p =error CS0103: Der Name "p" ist im aktuellen Kontext nicht vorhanden.

05.05.2019 - 16:12 Uhr

verwendetes Datenbanksystem: <SQL SERVER 2014>

Hallo zusammen,

ich programiere gerade eine Anwendung, die Daten mittels EF und LINQ bearbeiten soll.
Das Problem was ich habe befindet sich in der in der LINQ Abfrage arInvArea

Weiß jemanden wie man eine solche Exception abfangen kann?
Muss ich davor irgendwie checken ob null Werte gibt und dann die Abfrage ausführen oder wie geht das. Vielen Dank für die Antworten


private ObjectContactsRow CreateNewRow(AreaInventory arInv)
        {

         // Hier bekomme ich die Exception. WithSwimmingPool ist vom Typ Boolen
         var arInvArea = arInv.Area.Where(p => p.WithSwimmingPool).Select(p => p.Units(ReportDate)).FirstOrDefault();



            return new ObjectContactsRow()
            {
                areaSize =  arInvArea  
            };
        }



public class ObjectContactsRow 
    {

        public double areaSize { get; set; }

        public override object[] GetExcelRow()
        {        
            var index = 0;

            Row[index++] = areaSize;

            return Row;
        }
    }

31.12.2018 - 00:56 Uhr

Hallo zusammen,

hat jemanden Erfahrungen mit dem Desktop Bridge und speziell WPF zu UWP. Ist es wirklich so leicht Code in UWP umzuwandeln ? Wo gab es Probleme usw.
Danke

31.12.2018 - 00:12 Uhr

Hallo zusammen, ich such nach einer Bibliothek die ich für meine UWP App verwenden kann. Ich möchte einfach Youtube Videos in mp3 umwandeln. Alles in bestmögliche Qualität. Ich kenne videoLibrary aber sie ist mehr für Herunterladen von Videos. Danke euch

02.11.2018 - 15:40 Uhr

Hallo zusammen,

wie oben in der Überschrift erwähnt habe die Fehlermeldung in Visual Studio 2017 bleibt auf Deutsch obwohl ich die Sprache auf Englisch umgestellt habe. Ich habe das Englisch Sprachpaket heruntergeladen un danach in der Einstellungen alles auf Englisch umgestellt haben. Trotzdem bleiben die Fehlermeldungen auf Deutsch. Der Rest iat aber auf Englisch. Kennt jemanden eine Lösung? Vielen Dank

26.10.2018 - 10:20 Uhr

Ich erstelle zurzeit eine Anwendung, um Daten aus DataGridView in Oracle 11g zu importieren. Mein Problem ist, wenn zum Beispiel die Spalte REPORTING_OUTBOUND_DATE leer ist, dann bekomme ich die Fehlermeldung > Fehlermeldung:

System.FormatException: "Die Zeichenkette wurde nicht als gültige DateTime erkannt". Wie kann ich diese Fehler beheben und AM WICHTIGSTEN überhaupt? Gibt es eine Möglichkeit, alles besser zu programmieren? Danke



private void Btn_SAVE_IN_DATABASE_VEUPEN_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < dataGridView2.Rows.Count - 1; i++) //Schleife für INSERT Befehl
        {

            OracleConnection con = new OracleConnection("Data Source=(***********************");
            con.Open();

            string sql = "INSERT INTO AFTERSALES.INPUT_BOARDLEVEL_REPAIR_VEUPEN (BLR_REPORT_DATE, MONTH_OF_REPAIR_END, PCB_COUNTER, MANUFACTURER, REPORTING_OUTBOUND_DATE,  EMPTY,  QTY)"
                       + "VALUES (:BLR_REPORT_DATE, :MONTH_OF_REPAIR_END, :PCB_COUNTER, :MANUFACTURER, :REPORTING_OUTBOUND_DATE, :EMPTY, :QTY)";

            OracleCommand cmd = new OracleCommand(sql, con);
            cmd.Parameters.Add(":BLR_REPORT_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[0].Value).ToString("dd.MM.yyyy"));
            cmd.Parameters.Add(":MONTH_OF_REPAIR_END", dataGridView2.Rows[i].Cells[1].Value);
            cmd.Parameters.Add(":PCB_COUNTER", dataGridView2.Rows[i].Cells[2].Value);
            cmd.Parameters.Add(":MANUFACTURER", dataGridView2.Rows[i].Cells[3].Value);
            cmd.Parameters.Add(":REPORTING_OUTBOUND_DATE", Convert.ToDateTime(dataGridView2.Rows[i].Cells[4].Value).ToString("dd.MM.yyyy"));
            cmd.Parameters.Add(":EMPTY", dataGridView2.Rows[i].Cells[5].Value);
            cmd.Parameters.Add(":QTY", dataGridView2.Rows[i].Cells[6].Value);       
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }


22.10.2018 - 18:51 Uhr

Guten Tag,
ich bin dabei eine Anwendung mit WinForm zu schreiben, die Daten aus Oracle abfragt und sie in einer DataGridView einfügt. Das Besondere: Die DataGridView hat schon Spaltennamen. Beim Buttonclick sollten die Daten in der entsprechenden Spalte geladen werden. Ich möchte dass der User die Spaltennamen in DataGridView sieht bevor die Daten incl- Spaltennamen geladen werden.

Wie kann ich das machen oder anders gesagt wie kann ich die Spalten in Oracle zu der Spalten in der DataGridView zuorden. DANKE


private void button2_Click(object sender, EventArgs e)
        {
            try

            {

                string ConString = "Data Source= DWH;User Id=readonly;Password=*******;";

                using (OracleConnection con = new OracleConnection(ConString))
                {
                    OracleCommand cmd = new OracleCommand("SELECT * FROM EMPLOYEES", con);
                    OracleDataAdapter oda = new OracleDataAdapter(cmd);
                    DataTable data = new DataTable();                    
                    oda.Fill(data);
                    dataGridView2.DataSource = data;                  
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

        }

16.10.2018 - 15:17 Uhr

Hallo Taipi88,

ja sorry, dass ich alle deine Fragen nicht beantworten konnte bin ganz neu in C#. Begriffe wie OpenXML sagen mir nichts aber ich werde mich schlau machen.

Zu a) Leider muss die UI Bestandteil sein. Es ist auch für mich gut so da ich viel gelernt habe. Übrigens wenn du meinst dass man die Daten manuell in Clipboard einfügt, würde leider aus mehreren Gründe nicht gehen.

b) Ich werde mir ClosesXML näher anschauen.

Eigentlich das Problem liegt genau hier:

ApplicationCommands.Copy.Execute(null, DataGrid1); --- Hier dauert am meisten.

LG
Yves

16.10.2018 - 14:01 Uhr

Hallo Taipi88,
danke für die ausführliche Antwort. Laut Debugger dauert copyAlltoClipboard() ca. 40 Sek. Das ist viel zu viel. Ich muss als erstes eine andere Möglichkeit finden die Daten zu kopieren. Würdest du mir etwas vorschlagen ? Danke dir sehr !!!

16.10.2018 - 11:43 Uhr

Ich bin dabei eine WPF Anwendung zu schreiben, die Daten aus Datenbank nimmt und sie in DataGrid zeigt. Dann mittels einen Buttonklick wird eine Excel Datei erstellt und mit der Daten befüllt. Bei Großen Mengen wie 20000 Zeilen dauert die Befüllung in Excel zu lange. Hat jemanden eine Idee woran es liegt. Danke euch


private void copyAlltoClipboard()
    {
        Clipboard.Clear();
        DataGrid1.SelectAllCells();
        DataGrid1.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
        ApplicationCommands.Copy.Execute(null, DataGrid1);

    }


    private void Button_Click(object sender, RoutedEventArgs e)
    {
        copyAlltoClipboard();
        Excel.Application xlexcel;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;
        xlexcel = new Excel.Application();
        xlexcel.Visible = true;
        xlWorkBook = xlexcel.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
        CR.Select();
        xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
    }

11.10.2018 - 17:23 Uhr

Danke an alle für die Hilfe hier ist meine Lösung:


 private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {

                String connectionString = "Data Source=DWH; User Id=readonly; Password=*******;";

                OracleConnection con = new OracleConnection();
                con.ConnectionString = connectionString;
                con.Open();
                OracleCommand cmd = con.CreateCommand();
                cmd.CommandText = "SELECT * FROM SALARIES";
                cmd.CommandType = CommandType.Text;
                OracleDataReader dr = cmd.ExecuteReader();
                DataTable dt = new DataTable();
                dt.Load(dr);
                DataGrid1.ItemsSource = dt.DefaultView;             
                con.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }



<Window x:Class="OPEN_ORDERS_ORACLE_TABLE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OPEN_ORDERS_ORACLE_TABLE"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
    <Grid Height="419" VerticalAlignment="Top">
        <DataGrid x:Name ="DataGrid1" ItemsSource="{Binding}" Margin="10,40,10,70"/>
    </Grid>
</Window>


11.10.2018 - 16:17 Uhr

Ok erstmal Danke für die Antwort an alle. Ich habe eine zweite Frage.
Ich habe in der xaml Datei eine DataGrid eingefügt. Wenn ich diese DataGrid mit Daten aus Oracle befüllen möchte, sollte ich davor die Spalten drin vordefinieren und wenn nein welche Möglichkeiten gibt dass sich die DataGrid automatisch anpasst.
Grüße

<Window x:Class="OPEN_ORDERS_ORACLE_TABLE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:OPEN_ORDERS_ORACLE_TABLE"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
    <Grid Height="419" VerticalAlignment="Top">
        <DataGrid Margin="10,40,10,70"/>
    </Grid>
</Window>
11.10.2018 - 13:18 Uhr

verwendetes Datenbanksystem: <ORACLE>
Guten Tag zusammen,
ich erstelle eine WPF Anwendung , die DataGrid hat und mit ORACLE verbunden sein sollte. Leider die Ergebnisse werden nicht im DataGrid dargestellt. Ich bin generell neu in C#. Danke für die Hilfe

Hier ist der Code



private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

            String connectionString = "Data Source=DWH; User Id=readonly; Password=********;";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = connectionString;
            con.Open();
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "SELECT * FROM SALARIES";
            cmd.Connection = con;
            OracleDataReader dr = cmd.ExecuteReader();
            DataGrid dg = new DataGrid();
            dr.Read();
        }
        catch (Exception exp) { }
    }


07.08.2018 - 18:59 Uhr

Hallo zusammen,

ich möchte von einer DateGridView Tabelle in MySQL Daten einfügen. Es funktioniert soweit aber sobald Dezimalzahlen gibt dann werden sie nicht als Dezimal in MySQL gespeichert sondern als ganzen Zahlen. Die Dezimalstellen werden nicht übernommen. Ich habe probiert die Daten zu konvertieren aber ohne Erfolg. Sie werden nicht als Dezimalzahlen gespeichert.
Vielen Dank für die Tipps !!!!

Hier ist der Code



using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace KPI_Kosten_Import
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            DataObject o = (DataObject)Clipboard.GetDataObject();
            if (o.GetDataPresent(DataFormats.Text))
            {
                if (dataGridView1.RowCount > 0)
                    dataGridView1.Rows.Clear();

                string[] pastedRows = Regex.Split(o.GetData(DataFormats.Text).ToString().TrimEnd("\r\n".ToCharArray()), "\r\n");
                int j = 0;
                foreach (string pastedRow in pastedRows)
                {
                    string[] pastedRowCells = pastedRow.Split(new char[] { '\t' });

                    dataGridView1.Rows.Add();
                    int myRowIndex = dataGridView1.Rows.Count - 1;

                    using (DataGridViewRow myDataGridViewRow = dataGridView1.Rows[j])
                    {
                        for (int i = 0; i < pastedRowCells.Length; i++)
                            myDataGridViewRow.Cells[i].Value = pastedRowCells[i];
                    }
                    j++;
                }
                int NrOfRows = dataGridView1.RowCount - 1;
                MessageBox.Show("You have inserted " + NrOfRows.ToString() + " rows in the table");




            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) // dòng
            {
                string str = "server=test; database=test; uid=test; pwd=test;";
                MySqlConnection constr = new MySqlConnection(str);
                constr.Open();
                String cmdText = "INSERT INTO KPI_Kosten (Betrag, Tower, Jahr, Periode, Land) VALUES ('"
                                           + Convert.ToDecimal(dataGridView1.Rows[i].Cells[0].Value) + "','"
                                           + dataGridView1.Rows[i].Cells[1].Value + "','"
                                           + dataGridView1.Rows[i].Cells[2].Value + "','"
                                           + dataGridView1.Rows[i].Cells[3].Value + "','"
                                           + dataGridView1.Rows[i].Cells[4].Value + "' )";
                MySqlCommand cmd = new MySqlCommand(cmdText, constr);
                cmd.ExecuteNonQuery();
                constr.Close();
            }

        }
    }
}


03.07.2018 - 15:27 Uhr

Hallo Taipi,

mit @ habe ich dasselbe Problem.
Ich werde gleich der Debugger prüfen

Lg

03.07.2018 - 15:19 Uhr

Hallo Abt,

denke erstmal für die schnelle Antwort. Ich bin total neu im C# Bereich und freue mich sehr wenn ich hier Tipps kriegen kann. So ich habe mich bisschen über SQL Abfragen mit Parameter erkundigt nur halt meistens sind die Beispiele für MS SQL Server. Ich muss alles aber in MySQL machen. Also lange Rede kurzer Sinn: Ich habe den Code umgebaut aber leider jetzt bekomme ich den Fehler: "Column Material cant be NULL". Es ist aber nirgendwo NULL in der Daten. Ich verstehe nicht woher dieser Fehler kommt. Außerdem es kommt keine Meldung wenn in der Spalte mehr Text steht als erlaubt. Alles wird einfach geschnitten und in der Datenbank gespeichert. Genau so wie im Beispiel oben mit Microsoft

Hier ist der Code:


private void button2_Click(object sender, EventArgs e)
        {

            string constring = "server=xxxxxxx; database=xxxxx; uid=xxxx; pwd=xxxxx;";

           
            string Query = "insert into  MatData (Material,Bruttogewicht,Returnable) values" + "(?Material,?Bruttogewicht,?Returnable)";

           
            using (MySqlConnection conn = new MySqlConnection(constring))
            using (MySqlCommand command = new MySqlCommand(Query, conn))
            {
                conn.Open();

                command.Parameters.Add("?Material", MySqlDbType.Float);
                command.Parameters.Add("?Bruttogewicht", MySqlDbType.Float);
                command.Parameters.Add("?Returnable", MySqlDbType.VarChar);     
        try
                {

                    foreach (DataGridViewRow dr in dataGridView1.Rows)
                    {
                        
                        command.Parameters["?Material"].Value = dr.Cells[0].Value;
                        command.Parameters["?Bruttogewicht"].Value = dr.Cells[1].Value;
                        command.Parameters["?Returnable"].Value = dr.Cells[2].Value;
              
                command.ExecuteNonQuery();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }


03.07.2018 - 11:02 Uhr

Hallo zusammen,
ich habe eine kleine Anwendung gemacht die Daten von DataGridView in MySQL einfügen soll. Eigentlich funktioniert alles OK nur habe ich das Problem wenn Daten in einer der DataGridView Spalten zu lang ist als die erlaubte Länge in MySQL dann werden unbemerkt die Datensätze gekürzt und in MySQL mit der maximalen erlaubte Länge gespeichert. Der Rest wird einfach entfernt.
Meine Frage: Wie kann ich in C# oder von mir aus in MySQL so machen, dass ich eine Rückmeldung bekommen wenn ich längere Sätze als erlaubt habe. Danke

Beispiel:

In MySQL:
Spalte1 Varchar(5)

in DataGridView:
Text mit 9 Zeichen ---> Microsoft

Ergebniss in MySQL:

Micro



private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 0  ; i < dataGridView1.Rows.Count - 1; i++) // dòng
            {
                        string str = "server=xxxx; database=xxxx; uid=xxxx; pwd=xxxxxx;";
                        MySqlConnection constr = new MySqlConnection(str);
                        constr.Open(); 
                        String cmdText = "INSERT  INTO table (spalte1, spalte2, spalte3) VALUES ('"
                                                   + dataGridView1.Rows[i].Cells[0].Value + "','"
                                                   + dataGridView1.Rows[i].Cells[1].Value + "','"
                                                   + Convert.ToDateTime(dataGridView1.Rows[i].Cells[2].Value).ToString("yyyy-MM-dd HH:mm:ss.fff") + "','"
                                                   + dataGridView1.Rows[i].Cells[3].Value + "')";
                        MySqlCommand cmd = new MySqlCommand(cmdText, constr);
                        cmd.ExecuteNonQuery();
                constr.Close();
            }          

        }
    }
}




24.01.2018 - 17:54 Uhr

Guten Tag zusammen,
ich bin sehr frisch in C# und WPF aber bin sehr motiviert die Sprache zu lernen.
Die Situation:
Ich programmiere gerade eine WPF -Anwendung, die eine Tabelle aus MySQL darstellen soll.
Mann sollte die Tabelle auch ändern können , d.h. einfach auf einem Eintrag klicken und ändern.
Wie kann ich das machen bzw. welche WPF Element brauche ich. Ich habe mit Datagrid probiert aber ohne Erfolg. Visual Studio ist schon mit MySQL und die Tabelle verbunden. Die Tabelle steht schon im Server Explorer

Vielen Dank