gpt4 book ai didi

c# - ListView 对象引用未设置为对象的实例

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:02 25 4
gpt4 key购买 nike

我的 UserControl 有问题。当我启动程序时,我收到“未设置对象实例的对象引用”。 “listView1.Items.Add(horario);”行中的错误。我真的不知道该怎么办。也许是一个愚蠢的问题,但我找不到。你可以帮帮我吗?我已经尝试过动态使用 ItemsSource 和 xaml 方式,但没有成功。

<UserControl x:Class="Clipboard_final.Horas"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" Width="1258" Height="596">
<Grid Loaded="Grid_Loaded">
<Label Content="Horários" Height="61" Name="label1" VerticalAlignment="Top" FontSize="40" Margin="0,-9,1090,0" />
<Label Content="Cheque ou adicione novos horários realizados" Height="28" HorizontalAlignment="Left" Margin="29,40,0,0" Name="label2" VerticalAlignment="Top" />
<Label Content="Label" Height="32" Margin="0,85,567,0" Name="label3" VerticalAlignment="Top" FontSize="15" FontStretch="Normal" HorizontalAlignment="Right" Width="520" />
<Label Content="Entrou" Height="28" HorizontalAlignment="Left" Margin="183,132,0,0" Name="label4" VerticalAlignment="Top" />
<Label Content="Saiu" Height="28" HorizontalAlignment="Left" Margin="188,166,0,0" Name="label5" VerticalAlignment="Top" />
<Button Content="Enviar" Height="23" HorizontalAlignment="Left" Margin="219,543,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="228,135,0,0" Name="textBox1" VerticalAlignment="Top" Width="46" Text="00" />
<Label Content=":" Height="28" HorizontalAlignment="Left" Margin="272,132,0,0" Name="label6" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="281,135,0,0" Name="textBox2" VerticalAlignment="Top" Width="46" Text="00" />
<TextBox HorizontalAlignment="Left" Margin="228,168,0,0" Name="textBox3" Width="46" Height="23" VerticalAlignment="Top" Text="00" />
<Label Content=":" Height="28" HorizontalAlignment="Left" Margin="272,166,0,0" Name="label7" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="281,168,0,0" Name="textBox4" VerticalAlignment="Top" Width="46" Text="00" />
<TextBox Height="329" HorizontalAlignment="Left" Margin="78,208,0,0" Name="textBox5" VerticalAlignment="Top" Width="380" />
<ListView Height="329" HorizontalAlignment="Left" Margin="709,208,0,0" Name="listView1" VerticalAlignment="Top" Width="480" SelectionChanged="listView1_SelectionChanged" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Entrou" Width="60" DisplayMemberBinding="{Binding hora_entrada}"/>
<GridViewColumn Header="Saiu" Width="50" DisplayMemberBinding="{Binding hora_saida}" />
<GridViewColumn Header="Conferido" Width="65" DisplayMemberBinding="{Binding visto}"/>
<GridViewColumn Header="Descrição" Width="300" DisplayMemberBinding="{Binding descricao}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MySql.Data.MySqlClient;
using System.Windows.Controls;
using System.Collections.ObjectModel;

namespace Clipboard_final
{

public class Horarios
{
public string hora_entrada{ get; set; }
public string hora_saida { get; set; }
public string visto { get; set; }
public string descricao { get; set; }



}
public partial class Horas : UserControl
{
private int id_user;
ObservableCollection<Horarios> _Horarios =
new ObservableCollection<Horarios>();
public Horas(int _id_user)
{

id_user = _id_user;
MySqlConnection oi = new MySqlConnection();
oi.ConnectionString =
"server=localhost;"
+ "database=clipboard;"
+ "uid=staff;"
+ "password=clipboardstaff4thewin;";

try
{
oi.Open();
MySqlCommand comando = new MySqlCommand("SELECT horario_entrada,horario_saida,visto,descricao from horarios where ID_Estagiario = @id_user", oi);
comando.Parameters.Add("@id_user", MySqlDbType.Int32).Value = id_user;
MySqlDataReader leitor = comando.ExecuteReader();
while (leitor.Read())
{

Horarios horario = (new Horarios
{
hora_entrada = leitor.GetString(0),
hora_saida = leitor.GetString(1),
visto = (leitor.GetChar(0)).ToString(),
descricao = leitor.GetString(2)
});
listView1.Items.Add(horario);

}

leitor.Close();
}
catch (MySqlException ex)
{
MessageBox.Show("Erro de conexão com o banco de dados. Erro " + ex.ToString());
}
InitializeComponent();
label3.Content = "Hoje é dia "+Convert.ToString(DateTime.Now.Day)+" do mês "+Convert.ToString(DateTime.Now.Month)+" de "+Convert.ToString(DateTime.Now.Year);
}


private void button1_Click(object sender, RoutedEventArgs e)
{

try
{
MySqlConnection oi = new MySqlConnection();
oi.ConnectionString =
"server=localhost;"
+ "database=clipboard;"
+ "uid=staff;"
+ "password=clipboardstaff4thewin;";
try
{
oi.Open();
}
catch (Exception ex)
{
MessageBox.Show("Erro de conexão com o banco de dados. Erro " + ex.ToString());
}
if (textBox5.Text == "")
{
MessageBox.Show("Digite a descrição do dia");
}
else
{
MySqlCommand comando = new MySqlCommand("Select id_estagiario from estagiario where id_funcao = @um", oi);
comando.Parameters.Add("@um", MySqlDbType.Int32).Value = 1;
MySqlDataReader leitor = comando.ExecuteReader();
int chefe = 0;
while (leitor.Read())
{
chefe = leitor.GetInt32(0);
}
leitor.Close();
int horaentrada_inteiro = Convert.ToInt32(textBox1.Text);
int minutosentrada_inteiro = Convert.ToInt32(textBox2.Text);
int horasaida_inteiro = Convert.ToInt32(textBox3.Text);
int minutossaida_inteiro = Convert.ToInt32(textBox4.Text);

if (((horasaida_inteiro - horaentrada_inteiro) == 0 && (minutossaida_inteiro - minutosentrada_inteiro) <= 0) || horasaida_inteiro - horaentrada_inteiro < 0)
{
MessageBox.Show("Você digitou incorretamente os horários");
}
if (horaentrada_inteiro < 13 || horasaida_inteiro > (DateTime.Now.Hour + 1))
{
if (id_user != chefe)
{
MessageBox.Show("Ninguém trabalha nestes horários.", "Erro");
MySqlCommand comando1 = new MySqlCommand("Select Nome from estagiario where id_estagiario = @id_user", oi);
comando1.Parameters.Add("@id_user", MySqlDbType.Int32).Value = id_user;
MySqlDataReader leitor1 = comando1.ExecuteReader();
string nome = "";
while (leitor1.Read())
{
nome = leitor1.GetString(0);
}
leitor1.Close();
leitor1.Close();
comando1 = new MySqlCommand("Insert Into Recado values(0,@warn,0,'Clipboard SecuritySaver',@chefe)", oi);
comando1.Parameters.Add("@warn", MySqlDbType.VarChar).Value = "O estagiário " + nome + " tentou burlar o sistemas de horários.";
comando1.Parameters.Add("@chefe", MySqlDbType.Int32).Value = chefe;
comando1.ExecuteNonQuery();
}
else
{
MessageBox.Show("Chefe querido, você digitou os horários incorretamente", "Erro");
}

}
else
{

string data = Convert.ToString(DateTime.Now.Day) + '/' + Convert.ToString(DateTime.Now.Month) + '/' + Convert.ToString(DateTime.Now.Year);
string hora_entrada = Convert.ToString(horaentrada_inteiro) + ':' + minutosentrada_inteiro.ToString();
string hora_saida = horasaida_inteiro.ToString() + ':' + minutossaida_inteiro.ToString();
comando = new MySqlCommand("INSERT INTO HORARIOS VALUES (0,@data,@id_user,@hora_entrada,@hora_saida,@descricao,0)", oi);
comando.Parameters.Add("@data", MySqlDbType.VarChar).Value = data;
comando.Parameters.Add("@id_user", MySqlDbType.Int32).Value = id_user;
comando.Parameters.Add("@hora_entrada", MySqlDbType.VarChar).Value = hora_entrada;
comando.Parameters.Add("@hora_saida", MySqlDbType.VarChar).Value = hora_saida;
comando.Parameters.Add("@descricao", MySqlDbType.VarChar).Value = textBox5.Text;
comando.ExecuteNonQuery();
}
}
}


catch (FormatException ex)
{
MessageBox.Show("Escreva somente números");
}

}

private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

}



private void Grid_Loaded(object sender, RoutedEventArgs e)
{


}
}

对不起,奇怪的语言

最佳答案

尝试在表单初始化后调用 ListView 项

关于c# - ListView 对象引用未设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com