DataTable Table{get; set;}
DataAdapter dataAdapter;
private void DeleteMethod(object obj)
{
var indexDataTable= //получаете здесь индекс из колонки "индекс"(например) выбранной строки
var indexDataGridRow = //тут индекс самой строки, чтобы удалить ее из DataTable, либо вообще DataTable заново получать
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = new SqlConnection(connectionString);
cmd.CommandText = "DELETE FROM YourTableName where id=" + indexDataTable;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
}
Table.Rows[indexDataGridRow].Delete();
Table.AcceptChanges();
dataAdapter.Update(Table);
}
INSERT INTO tbl_name (a,b,c)
VALUES
(1,2,3),
(4,5,6),
(7,8,9);
После запуска программы в окне изображается две полосы прокрутки.
<Window x:Class="Toster.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:Toster"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" MinWidth="200">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="15"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="15"/>
</Grid.ColumnDefinitions>
<Canvas Name="Field">
<Button Canvas.Left="120" Canvas.Top="150"
Height="50" Width="50" Click="Button_Click"/>
<Button Canvas.Left="250" Canvas.Top="180"
Height="50" Width="50" Click="Button_Click"/>
</Canvas>
<ScrollBar x:Name="VerticalScrollBar"
HorizontalAlignment="Right"
Grid.Column="1" Grid.Row="0"
Scroll="VerticalScrollBar_Scroll"/>
<ScrollBar x:Name="HorizontalScrollBar"
Orientation="Horizontal" VerticalAlignment="Bottom"
Grid.Column="0" Grid.Row="1"
Scroll="HorizontalScrollBar_Scroll"/>
</Grid>
</Window>
Наводя указатель мыши на одну из двух фигур, можно выбирать, какая из этих фигур связана с полосами прокрутки.
public partial class MainWindow : Window
{
public Point SelectedPoint { get; set; }
public Button SelectedButton { get; set; }
public MainWindow()
{
DataContext = this;
InitializeComponent();
VerticalScrollBar.IsEnabled = false;
HorizontalScrollBar.IsEnabled = false;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (SelectedButton != null)
SelectedButton.Content = "";
SelectedButton = sender as Button;
SelectedButton.Content = "X";
SelectedPoint = SelectedButton.TransformToAncestor(Field).Transform(new Point(0, 0));
VerticalScrollBar.Value = SelectedPoint.Y / Field.ActualHeight;
HorizontalScrollBar.Value = SelectedPoint.X / Field.ActualWidth;
VerticalScrollBar.IsEnabled = true;
HorizontalScrollBar.IsEnabled = true;
}
private void VerticalScrollBar_Scroll(object sender, ScrollEventArgs e)
{
SelectedPoint = new Point(SelectedPoint.X, VerticalScrollBar.Value * Field.ActualHeight);
Canvas.SetTop(SelectedButton, SelectedPoint.Y);
}
private void HorizontalScrollBar_Scroll(object sender, ScrollEventArgs e)
{
SelectedPoint = new Point(HorizontalScrollBar.Value * Field.ActualWidth, SelectedPoint.Y);
Canvas.SetLeft(SelectedButton, SelectedPoint.X);
}
}
<Target Name="Repack" AfterTargets="BuiltProjectOutputGroup">
<GetFrameworkPath>
<Output TaskParameter="Path" PropertyName="FrameworkPath" />
</GetFrameworkPath>
<ItemGroup>
<NetPlatformFolders Include="$(NuGetPackageFolders.Split(';'))"></NetPlatformFolders>
</ItemGroup>
<ItemGroup>
<AllowDup Include="System.%2A" />
<AllowDup Include="JetBrains.%2A" />
</ItemGroup>
<ItemGroup>
<RapackTarget Include="$(TargetDir)MyDll1.dll" />
<RapackTarget Include="$(TargetDir)MuDll2.dll" />
</ItemGroup>
<PropertyGroup>
<ILRepack Condition="'$(ILRepack)' == ''">$(NuGetPackageRoot)ilrepack\2.1.0-beta1\tools\ILRepack.exe</ILRepack>
<ILRepackTargetPlatform Condition="'$(TargetFramework)' == 'net45'">v4,$(FrameworkPath)</ILRepackTargetPlatform>
<ILRepackTargetPlatform Condition="'$(TargetFramework)' == 'netstandard1.3' or '$(TargetFramework)' == 'netcoreapp2.0' or '$(TargetFramework)' == 'netstandard2.0'">v4</ILRepackTargetPlatform>
<IlRepackLibs Condition="'$(TargetFramework)' == 'netstandard2.0'">@(NetPlatformFolders->'"/lib:%(FullPath)\netstandard.library\2.0.0\build\netstandard2.0\ref"', ' ')</IlRepackLibs>
<IlRepackLibs Condition="'$(TargetFramework)' == 'netcoreapp2.0'">@(NetPlatformFolders->'"/lib:%(FullPath)\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0"', ' ')</IlRepackLibs>
<IlRepackAllowDup>@(AllowDup->'"/allowdup:%(Identity)"', ' ')</IlRepackAllowDup>
<IlRepackTargets>@(RapackTarget->'"%(Identity)"', ' ')</IlRepackTargets>
</PropertyGroup>
<Exec Command="$(mono) "$(ILRepack)" /target:exe "/targetplatform:$(ILRepackTargetPlatform)" /union /parallel /internalize "/lib:$(TargetDir.TrimEnd('\'))" $(IlRepackLibs) $(IlRepackAllowDup) "/out:$(TargetPath)" "$(TargetPath)" $(IlRepackTargets)" WorkingDirectory="$(SolutionDir)" />
<Delete Files="@(RapackTarget);" />
</Target>
using System;
using System.Linq;
namespace parse_ip
{
class Program
{
static void Main(string[] args)
{
var l = Console.In.ReadToEnd()
.Split(Environment.NewLine)
.Select(s => s.TrimStart('-'))
.Where(s => s.Contains("IP:"));
foreach (var s in l)
Console.WriteLine(s);
}
}
}
Console.In
. хоть WebResponse.GetResponseStream()
, хоть сокет.Console.In.ReadToEnd().Split(Environment.NewLine)
, вставить File.ReadAllLines("путь+имя")
.Frame
, делаешь ему IsClippedToBounds="true"
и Padding="0".
Вставляешь в него StackLayout
в который вкладываешь Image
с Aspect="AspectFill"
и две Label
с разными шрифтами. Разместить можно либо в обычном ScrollView
с Orientation="Horizontal"
внутрь которого вкладываешь StackLayout
(тот-же orientation) с BindableLayout
, либо CollectionView
либо какой-то HorizontalListView с NuGet Мозг каждый день кипит так же, как в первый день. Шаг влево шаг вправо, и вот, я уже ничего не знаю и ничего не умею... ощущение, что на работе я как будто не прогрессирую, а наоборот деградирую...
CurrencyManager currencyManager = (CurrencyManager)BindingContext [dataGridView1.DataSource];
currencyManager.SuspendBinding();
dataGridView1.CurrentCell = this.dataGridView1[columnNumber, visibleRowNumber];
textBox1.Text += "\r\n" + textOnChars[i] + " - " + crypted + "\n";
using System;
using System.Linq;
public class Test
{
public static void Main()
{
int[] ScoreCombo = new int[5] { 1, 2, 1, 1, 1 };
foreach(var repeat in ScoreCombo.GroupBy(i => i).Where(g => g.Count() > 1))
Console.WriteLine("Repeat: " + repeat.Key + " (" + repeat.Count() + ")");
}
}
using System;
using System.Collections.Generic;
namespace GetRepetitions
{
class Program
{
static void Main(string[] args)
{
var scoreCombo = new int[] { 1, 2, 1, 1, 1 };
var repetitions = GetRepetitionsCount(scoreCombo);
foreach (var kv in repetitions)
Console.WriteLine($"Num: {kv.Key}, Rep. Count: {kv.Value}");
}
static Dictionary<int, int> GetRepetitionsCount(int[] arr)
{
var repetitions = new Dictionary<int, int>();
foreach (var num in arr)
if (repetitions.ContainsKey(num))
repetitions[num]++;
else
repetitions.Add(num, 0);
return repetitions;
}
}
}