Обновление SQL базы данных сервера из TextBox с использованием хранимой процедуры WPF C# - PullRequest
0 голосов
/ 26 апреля 2020

Я сейчас работаю над проектом и использую SQL Сервер, Linq, хранимые процедуры и WPF.

Я хочу сделать обновление напрямую из сетки данных, но я не сделал этого, поэтому я попытался обновить данные, вставив их в текстовые поля, что было плохой идеей, поскольку обновлялись все строки с одинаковыми значениями.

Вот мой код, может быть, вы можете мне помочь, я боролся с много с этим.

<Page x:Name="x" x:Class="Project"
      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" 
      xmlns:local="clr-namespace:Project"
      mc:Ignorable="d" 
      d:DesignHeight="450" d:DesignWidth="850"
      Title="Test">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="83*"/>
            <RowDefinition Height="67*"/>
        </Grid.RowDefinitions>
        <DataGrid x:Name="dataGridViewDevices" HorizontalAlignment="Left" Height="298" VerticalAlignment="Top" Width="639" Margin="0,142,0,0" RowBackground="#FFF3C1D6" FontWeight="Bold" Background="#FFF3C1D6" Grid.RowSpan="2" CellEditEnding="dataGridViewAparate_CellEditEnding"/>
        <Button x:Name="listDevices" Content="Select" HorizontalAlignment="Left" Margin="671,35,0,0" VerticalAlignment="Top" Width="75" Click="listDevices_Click" Grid.Row="1" Background="#FFECA6C3" FontWeight="Bold"/>
        <Button x:Name="btnInsertDevice" Content="Insert " HorizontalAlignment="Left" Margin="671,76,0,0" Grid.Row="1" VerticalAlignment="Top" Width="75" Background="#FFECA6C3" FontWeight="Bold" Click="btnInsertDevice_Click" RenderTransformOrigin="0.993,0.525"/>
        <Label x:Name="lblDeviceName" Content="Device" HorizontalAlignment="Left" Margin="25,39,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="txtDeviceName" HorizontalAlignment="Left" Height="23" Margin="123,43,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="379"/>
        <Label x:Name="lblDescription" Content="Description" HorizontalAlignment="Left" Margin="25,89,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="txtDescription" HorizontalAlignment="Left" Height="23" Margin="123,92,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="379"/>
        <Button x:Name="btnUpdateDevice" Content="Update" HorizontalAlignment="Left" Margin="671,116,0,0" Grid.Row="1" VerticalAlignment="Top" Width="75" Background="#FFECA6C3" FontWeight="Bold" Click="btnUpdateDevice_Click"/>
    </Grid>
</Page>

Вот моя функция из класса, где я вызываю хранимую процедуру:

public void updateDevice()
{
        if (dc.DatabaseExists())
        {
            var s = dc.spAparat_UpdateDevice(txtDeviceName.Text, txtDescription.Text);
        }

        dc.SubmitChanges();
        MessageBox.Show("Data successfully updated!");
}

Вот моя хранимая процедура:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spDevice_UpdateDevice]
    (@Name varchar(max),
     @Description varchar(max))
AS
BEGIN
    UPDATE Device 
    SET Name = @Name, Description = @Description 
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...