(C#) mariadb MySql Verbindung Fehler?

Moin,

einmal vorweg, es lief einmal. Nach einem Update auf der Datenbank dann aber nicht mehr...

string server = "xxx.xxx.xxx.xxx";
string database = "test2";
string uid = "root";
string password = "PASSWORT";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";SslMode=none;";
con = new MySqlConnection(connectionString);

Das ist der Connection String - das Passwort ist natürlich nicht "PASSWORT" und die IP-Adresse ist natürlich auch anders, aber passt.

Ich möchte nun einfach Daten empfangen;

var com = new MySqlCommand("SELECT * FROM levels", con);
con.Open();
var reader = com.ExecuteReader(); << Error

Jedoch springt er beim ExecuteReader(); mit folgender Meldung heraus;

"The given key '8704' was not present in the dictionary."

Habe bereits versucht eine andere Datenbank aufzusetzen - gleicher Fehler mit einem anderen Key.

So sieht eigentlich die Tabelle aus - eine Zeile ist eingefügt. Wie gesagt, es ging einmal - nachdem ich den Datentyp von INT zu BIGINT geändert hatte ging es dann nicht mehr (natürlich bringt das Zurücksetzen auch nichts, habe ja auch mit mehreren Datenbanken getestet).

Die NuGet ist auch Up-To-Date.

Ich verzweifle leider daran - hat jemand eine Idee, woran es liegen könnte?

LG

Bild zum Beitrag
Computer, Technik, programmieren, C Sharp, Datenbank, MySQL, Technologie, MariaDB, Spiele und Gaming
C# FileSystemWatcher Disposed sich von selbst?

Hallo,

warum auch immer, aber mein FileSystemWatcher Disposed sich immer von selbst. Ich benutze eine Console Anwendung (.Net Framework.4.8).

Das komische, ich habe das mal bei Windows Forms benutzt vor 2 Tagen, da lief es wunderbar, warum disposed der sofort in der Console?

log.Info(Path.GetDirectoryName(args[0]));
            try
            {
                using (fileSystemWatcher = new FileSystemWatcher(Path.GetDirectoryName(args[0])))
                {
                    fileSystemWatcher.IncludeSubdirectories = true;
                    fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Attributes | NotifyFilters.CreationTime;
                    fileSystemWatcher.Filter = "*.js";
                    fileSystemWatcher.Changed += new FileSystemEventHandler(JSChanged);
                    fileSystemWatcher.Disposed += new EventHandler(JSDisposed);
                    fileSystemWatcher.Error += new ErrorEventHandler(JSError);
                    fileSystemWatcher.EnableRaisingEvents = true;
                }
            }
            catch(Exception ex)
            {
                log.Error(ex.Message);
            }

Der Ordnerpfad ist korrekt, das habe ich oben mit log.Info geprüft. Habe ich irgendwas übersehen?

Es wird das fileSystemWatcher.Disposed Event aufgerufen

Danke schon mal im Voraus

Bild zum Beitrag
Computer, programmieren, C Sharp, CS, Visual Studio, .net-Framework
Wie kann ich "Object reference not set to an instance of an object" beheben?

Hallo,

ich bin dabei, ein Spiel zu machen und bekomme die ganze Zeit den Fehler

Object reference not set to an instance of an object

bei dem Code.

using System;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
using Object = UnityEngine.Object;

// Token: 0x02000007 RID: 7
public class LevelGeneration : MonoBehaviour
{
  // Token: 0x06000015 RID: 21 RVA: 0x0000246C File Offset: 0x0000066C
  private void Awake()
  {
    this.lastEndPosition = this.levelPart_Start.Find("EndPosition").position;
    int num = 5;
    
    for (int i = 0; i < num; i++)
    {
      this.spawnLevelPart();
    }
  }

  // Token: 0x06000016 RID: 22 RVA: 0x000024A8 File Offset: 0x000006A8
  private void Update()
  {
    if (Vector3.Distance(this.player.transform.position, this.lastEndPosition) < 200f)
    {
      this.spawnLevelPart();
    }
  }

  // Token: 0x06000017 RID: 23 RVA: 0x000024D4 File Offset: 0x000006D4
  private Transform SpawnLevelPart(Transform levelPart, Vector3 spawnPosition)
  {
    Transform transform = Object.Instantiate<Transform>(levelPart, spawnPosition, Quaternion.identity);
    this.putRight(transform);
    return transform;
  }

  // Token: 0x06000018 RID: 24 RVA: 0x000024F8 File Offset: 0x000006F8
  private void spawnLevelPart()
  {
    Transform levelPart = this.levelPartList[Random.Range(0, this.levelPartList.Count)];
    Transform transform = this.SpawnLevelPart(levelPart, this.lastEndPosition);
    this.lastEndPosition = transform.Find("EndPosition").position;
  }

  // Token: 0x06000019 RID: 25 RVA: 0x00002548 File Offset: 0x00000748
  private void putRight(Transform levelPart)
  {
    this.bottomPosition.y = levelPart.Find("bottom").position.y;
    this.topPosition.y = levelPart.Find("top").position.y;

    if (this.bottomPosition.y <= -10f)
    {
      levelPart.transform.position += new Vector3(0f, 3f, 0f);
    }

    if (this.topPosition.y >= 10f)
    {
      levelPart.transform.position -= new Vector3(0f, 3f, 0f);
    }
  }

  // Token: 0x04000013 RID: 19
  private const float PLAYER_DISTANCE_SPAWN_LEVEL_PART = 200f;

  // Token: 0x04000014 RID: 20
  [Header("Level Parts")]
  [SerializeField]
  private Transform levelPart_Start;

  // Token: 0x04000015 RID: 21
  [SerializeField]
  private List<Transform> levelPartList;  

  // Token: 0x04000016 RID: 22
  [Header("Objects")]
  [SerializeField]
  private GameObject player;

  // Token: 0x04000017 RID: 23
  private Vector3 lastEndPosition;

  // Token: 0x04000018 RID: 24
  private Vector3 bottomPosition;

  // Token: 0x04000019 RID: 25
  private Vector3 topPosition;
}

Ich danke jetzt schon für die Antworten. ^^

Computer, programmieren, C Sharp, Unity
ich soll zwei Dateien vergleichen C#?

Programmiere noch nicht so lange, brauche deshalb eure Hilfe Ich soll zwei Dateien A & B mit einander vergleichen. der Unterschied soll in eine dritte Datei geschrieben werden. Alles was in Datei A geändert wurde soll in die dritte datei mit rot markiert werden. Alles was neu hinzugefügt ist soll mit blau markiert werden. könnt ihr mir bitte helfen??

public void Dateivergleich(string A, string B)
    {
      string path = @"C:\Users\Z0009918\Desktop\Test1";
      string[] linesA = File.ReadAllLines(A);
      string[] linesB = File.ReadAllLines(B);
      //IList<string> onlyB = linesB.Except(linesA).ToList();
      //for (var i = 0; i < onlyB.Count; ++i)
      // {
      //  if (onlyB[i].StartsWith("%"))
       
      //{
       //    onlyB[i] = "";
       // }
        IEnumerable<string> onlyB = linesB.Except(linesA);
        //}
        File.WriteAllLines(Path.Combine(path, "result.txt"), onlyB);
        
      // }
      /*for (int i = 0; i < linesA.Length; i++)
      {
        string row = linesA[i];
        if (row.StartsWith("%"))
        {
          IEnumerable<string> onlyA = linesB.Except(linesA);
          File.WriteAllLines(Path.Combine(path, "result.txt"), onlyB);
        }
        else
        {
          MessageBox.Show("Fehler");
        }*/
      }
    }
programmieren, C Sharp
C# StringBuilder Werte separieren?

Folgendes:
Ich möchte aus hostname.DisplayName die 2 Werte (HostName und IP-Addresse) seperat in einem eigenen String haben... leider kommen aus hostname.DisplayName beide Werte gleichzeitig aus...

Wie kann ich diese am besten trennen?

Hier das Ergebnis:

Der Code:

StringBuilder clientListMACAddress = new StringBuilder();
                    StringBuilder clientListHostname = new StringBuilder();
                    StringBuilder clientListIPAdress = new StringBuilder();


                    var currentClients = tetheringManager.GetTetheringClients().ToArray();
                    foreach(var client in currentClients)
                    {
                        //MessageBox.Show(client.MacAddress);
                        //string MACAddress = client.MacAddress;
                        clientListMACAddress.AppendLine(client.MacAddress);
                        foreach (var hostname in client.HostNames)
                        {
                            clientListHostname.AppendLine(hostname.DisplayName);
                            //clientListIPAdress.AppendLine(hostname.DisplayName);
                            
                        }
                    }
                    MessageBox.Show("MAC: " + clientListMACAddress.ToString() + " HOST: " + clientListHostname.ToString() + " IP: " + clientListIPAdress.ToString());

Vielen dank im Voraus :)

Mit freundlichen Grüßen

Bild zum Beitrag
Computer, Windows, Microsoft, C Sharp, Informatik, Visual Studio, .net-Framework, Visual Studio 2019
Nicht alle Codepfade geben ein Wert zurück?

Ich bekomme den Fehler, dass nicht alle Codepfade einen Wert zurück geben "Form1.GetKugel()".

Wenn ich das in else stehende so hinstelle ohne else funktioniert es einwandfrei..

ich habe gerade erst angefangen zu lernen und es ist hoffe ich nur ein dämlicher Anfängerfehler :D

private struct Kugel
        {
            public double radius, sg;
        }
        private double gew;
        private Kugel GetKugel()
        {
            
            if (textBox1.Text == "")
            {
                MessageBox.Show("Bitte trage einen Wert ein", "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else if (textBox1.Text.Length > 0)
            {
                MessageBox.Show("Bitte trage einen gültigen Wert ein", "Hinweis", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                textBox1.Clear();
            }
            else
            {
                Kugel kug;
                kug.radius = Convert.ToDouble(textBox1.Text) / 2;
                if (radioButton1.Checked) kug.sg = 1.4D;
                else if (radioButton2.Checked) kug.sg = 2.7D;
                else if (radioButton3.Checked) kug.sg = 3.0D;
                else if (radioButton4.Checked) kug.sg = 7.87D;
                else kug.sg = 11.3D;
                return kug;  
            }
             
        }
Computer, programmieren, C Sharp, Visual Studio
Wie kann ich meinen Button Click so ändern, dass er immer automatisch ausgeführt wird, wenn meine TextBox nicht mehr leer ist?

Ich habe ein DataGrid bei dem ich mit MVVM die Daten beziehe. Jetzt habe ich es so gemacht das wenn ich diesen Button drücke:

<TextBlock Text="&#xE71C;" x:Key="DataGridSelectAllButtonStyle.Content"/>
                <Style x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}"
                    TargetType="{x:Type Button}">
                    <Setter Property="Background" Value="Gray"/>
                    <Setter Property="BorderBrush" Value="White"/>
                    <Setter Property="BorderThickness" Value="0 0 1 0"/>
                    <EventSetter Event="Click" Handler="ClearButton_Click"/>
                    <Setter Property="Content">
                        <Setter.Value>
                            <StackPanel Background="Gray" Height="40" Width="11">
                                <Separator Background="White" Margin="0,17,-1,0"/>
                                <TextBlock Background="{x:Null}" HorizontalAlignment="Center" Height="13"  Margin="0 5 0 0"
                            FontFamily="Segoe MDL2 Assets" FontWeight="Light" FontSize="7"
                            Text="{Binding Text, Source={StaticResource DataGridSelectAllButtonStyle.Content}}">
                                </TextBlock>
                            </StackPanel>
                        </Setter.Value>
                    </Setter>
                </Style>

Und meine TextBoxen nicht leer sind sie dann automatisch geleert werden. Wenn jedoch die TextBoxen nicht leer sind und ich denn Button noch nicht gedrückt habe soll sich der Content von dem Button ändern zu einem Kreuz. Das habe ich bereits jedoch nur bedingt geschafft denn jetzt ist es bei mir so das nur wenn ich auf denn Button Clicke der Content geändert wird und nicht automatisch sobald er erkennt die TextBoxen sind nicht mehr leer. Also mein Ziel ist es das wenn die TextBoxen leer sind das standard Symbol (Content) angezeigt wird und sobald eine der TextBoxen nicht mehr leer sind soll sich der Button Content automatisch in ein Kreuz ändern und nicht wie jetzt das es nur manuell über das Klicken auf den Button funktioniert und sobald alle TextBoxen wieder leer sind soll das Anfangs Symbol(Content gezeigt werden). Und hier ist erstmal mein Code Behind womit ich denn Button content per Click event ändere:

private void ClearButton_Click(object sender, RoutedEventArgs e)
        {
            if (!String.IsNullOrEmpty(IDSearcBox.Text))
            {
                if (sender is FrameworkElement element)
                {
                    TextBlock textBlock = (TextBlock)element.FindResource("DataGridSelectAllButtonStyle.Content");
                    textBlock.Text = textBlock.Text == "\xE711"
                        ? "\xE71C"
                        : "\xE711";
                }
            }
        }
Computer, C Sharp, XAML, Windows Presentation Foundation

Meistgelesene Fragen zum Thema C Sharp