Получить значения из таблицы с помощью выбора из для сохранения во вставке в таблицу - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть два проекта windows, одна из них - страница входа в систему, и SQL установлена ​​как select from, а другая страница - это студент, и она установлена ​​как insert into.

Я хочу, чтобы столбец username из таблицы student как-то появлялся в таблице вставок.

public string saveduser;

private void button_Click(object sender, RoutedEventArgs e)
{
    SqlConnection sqlCon = new SqlConnection(@"Data Source = root\SQLEXPRESS; Initial Catalog =Log-In; Integrated Security = True");

    try
    {
        if (sqlCon.State == ConnectionState.Closed)
            sqlCon.Open();

        string query = "SELECT COUNT(1) FROM Login WHERE Username = @Username AND password = @password AND usertype = @usertype";

        SqlCommand sqlCmd = new SqlCommand(query, sqlCon);
        sqlCmd.CommandType = CommandType.Text;

        sqlCmd.Parameters.AddWithValue("@Username", txtUsername.Text);
        sqlCmd.Parameters.AddWithValue("@password", txtPassword.Text);
    }
    ......
}

Страница ученика:

private void button_Click(object sender, RoutedEventArgs e)
{
    Login aa = new Login();
    string newsaveduser = aa.saveduser;

    using (var Con = new SqlConnection(@"Data Source=root\SQLEXPRESS; Initial Catalog=Log-In; Integrated Security=True"))
    {
        Con.Open();

        var table = "INSERT INTO  Student (username, DepartureCity, ArrivalCity, DateOfDeparture, DateOfReturn) VALUES (@username, @DepartureCity, @ArrivalCity, @DateOfDeparture, @DateOfReturn)";

        using (var cmd = new SqlCommand(table, Con))
        {
            // again here trying to use the textbox but it keep giving me error  SqlParameter unitsParam = cmd.Parameters.AddWithValue("@username", newsaveduser);
            if (aa.saveduser == null)
            {
                unitsParam.Value = DBNull.Value;
            }

            cmd.Parameters.AddWithValue("@DepartureCity", fromtxt.Text);
            cmd.Parameters.AddWithValue("@ArrivalCity", Totxt.Text);
            cmd.Parameters.AddWithValue("@DateOfDeparture", date_time_picker.Text);
            cmd.Parameters.AddWithValue("@DateOfReturn", date_time_picker1.Text);

            cmd.ExecuteNonQuery();

            MessageBox.Show("Data inserted successfully");
        }
    }
}

Ошибка Я получаю с этим кодом:

Дополнительная информация: Невозможно вставить значение NULL в столбец «имя пользователя», таблица «Log-In.dbo.Student»; столбец не допускает пустых значений. Вставить не удается

1 Ответ

1 голос
/ 28 апреля 2020

Похоже, на вашей странице студента вы забыли добавить имя пользователя

cmd.Parameters.AddWithValue("@Username", txtUsername.Text);
cmd.Parameters.AddWithValue("@DepartureCiry", fromtxt.Text);
cmd.Parameters.AddWithValue("@ArrivalCity", Totxt.Text);
cmd.Parameters.AddWithValue("@DateOfDeparture", date_time_picker.Text);
cmd.Parameters.AddWithValue("@DateOfReturn", date_time_picker1.Text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...