Notatki dla .NET w języku programowania C#

Proste podzapytanie UPDATE

Proste podzapytanie UPDATE

UPDATE [EDI_FORM].[dbo].[magazyn_produkty] 
     SET [kolekcja] = 
         (  SELECT top 1 kolekcja 
            FROM [EDI_FORM].[dbo].[NoweProdukty] AS P 
             WHERE [EDI_FORM].[dbo].[magazyn_produkty].ean = P.ean
         );
Kategoria: 

Struktura drzewa sql sever - tree

WITH cte AS
(
  SELECT
    [id],
    [id_produkt], 
	[id_nadrzedny_produkt],
	[ilosc],
    [id_typ_opakowania],
    CAST(0 AS varbinary(MAX)) AS Level
  FROM [EDI_FORM].[dbo].[NoweProdukty_opakowanie]
  WHERE [id_nadrzedny_produkt] = 0 
  UNION ALL
  SELECT 
    i.[id],
    i.[id_produkt], 
    i.[id_nadrzedny_produkt],
    i.[ilosc],
    i.[id_typ_opakowania],  
    Level + CAST(i.[id] AS varbinary(MAX)) AS Level
  FROM [EDI_FORM].[dbo].[NoweProdukty_opakowanie] i
  INNER JOIN cte c
    ON c.[id] = i.[id_nadrzedny_produkt]
)
SELECT 
	[id],
    [id_produkt], 
	[id_nadrzedny_produkt],
	[ilosc],
    [id_typ_opakowania]
FROM cte
ORDER BY [Level];
Kategoria: 

NPOI – Copy Row Helper

http://www.zachhunter.com/2010/05/npoi-copy-row-helper/

/// <summary>
/// HSSFRow Copy Command
///
/// Description:  Inserts a existing row into a new row, will automatically push down
///               any existing rows.  Copy is done cell by cell and supports, and the
///               command tries to copy all properties available (style, merged cells, values, etc...)
/// </summary>
/// <param name="workbook">Workbook containing the worksheet that will be changed</param>
/// <param name="worksheet">WorkSheet containing rows to be copied</param>
/// <param name="sourceRowNum">Source Row Number</param>
/// <param name="destinationRowNum">Destination Row Number</param>
private void CopyRow(HSSFWorkbook workbook, HSSFSheet worksheet, int sourceRowNum, int destinationRowNum)
{
    // Get the source / new row
    HSSFRow newRow = worksheet.GetRow(destinationRowNum);
    HSSFRow sourceRow = worksheet.GetRow(sourceRowNum);
 
    // If the row exist in destination, push down all rows by 1 else create a new row
    if (newRow != null)
    {
        worksheet.ShiftRows(destinationRowNum, worksheet.LastRowNum, 1);
    }
    else
    {
        newRow = worksheet.CreateRow(destinationRowNum);
    }
 
    // Loop through source columns to add to new row
    for (int i = 0; i < sourceRow.LastCellNum; i++)
    {
        // Grab a copy of the old/new cell
        HSSFCell oldCell = sourceRow.GetCell(i);
        HSSFCell newCell = newRow.CreateCell(i);
 
        // If the old cell is null jump to next cell
        if (oldCell == null)
        {
            newCell = null;
            continue;
        }
 
        // Copy style from old cell and apply to new cell
        HSSFCellStyle newCellStyle = workbook.CreateCellStyle();
        newCellStyle.CloneStyleFrom(oldCell.CellStyle); ;
        newCell.CellStyle = newCellStyle;
 
        // If there is a cell comment, copy
        if (newCell.CellComment != null) newCell.CellComment = oldCell.CellComment;
 
        // If there is a cell hyperlink, copy
        if (oldCell.Hyperlink != null) newCell.Hyperlink = oldCell.Hyperlink;
 
        // Set the cell data type
        newCell.SetCellType(oldCell.CellType);
 
        // Set the cell data value
        switch (oldCell.CellType)
        {
            case HSSFCellType.BLANK:
                newCell.SetCellValue(oldCell.StringCellValue);
                break;
            case HSSFCellType.BOOLEAN:
                newCell.SetCellValue(oldCell.BooleanCellValue);
                break;
            case HSSFCellType.ERROR:
                newCell.SetCellErrorValue(oldCell.ErrorCellValue);
                break;
            case HSSFCellType.FORMULA:
                newCell.SetCellFormula(oldCell.CellFormula);
                break;
            case HSSFCellType.NUMERIC:
                newCell.SetCellValue(oldCell.NumericCellValue);
                break;
            case HSSFCellType.STRING:
                newCell.SetCellValue(oldCell.RichStringCellValue);
                break;
            case HSSFCellType.Unknown:
                newCell.SetCellValue(oldCell.StringCellValue);
                break;
        }
    }
 
    // If there are are any merged regions in the source row, copy to new row
    for (int i = 0; i < worksheet.NumMergedRegions; i++)
    {
        CellRangeAddress cellRangeAddress = worksheet.GetMergedRegion(i);
        if (cellRangeAddress.FirstRow == sourceRow.RowNum)
        {
            CellRangeAddress newCellRangeAddress = new CellRangeAddress(newRow.RowNum,
                                                                        (newRow.RowNum +
                                                                         (cellRangeAddress.FirstRow -
                                                                          cellRangeAddress.LastRow)),
                                                                        cellRangeAddress.FirstColumn,
                                                                        cellRangeAddress.LastColumn);
            worksheet.AddMergedRegion(newCellRangeAddress);
        }
    }
 
}
 
 
 
// Grab my NPOI workbook memorystream
HSSFWorkbook workbook = new HSSFWorkbook(memoryStream);
 
// Grab my test worksheet
HSSFSheet sheet = workbook.GetSheet("Sheet1");
 
// Copy Excel Row 1 to Excel Row 3
CopyRow(workbook, sheet, 0, 2);
 
// Copy Excel Row 2 to Excel Row 4
CopyRow(workbook, sheet, 1, 3);
Kategoria: 

Wyzerowanie kolumnu Identity

Zerujemy kolumne z opcją IDENTITY

DBCC CHECKIDENT ('[EDI_FORM].[dbo].[NoweProdukty]',RESEED, 0);;
Kategoria: 

Prosta walidacja textbox

Walidacja tylko liczby

private void NumericOnly(System.Object sender, System.Windows.Input.TextCompositionEventArgs e)
{
            e.Handled = IsTextNumeric(e.Text);
}
 
 
private static bool IsTextNumeric(string str)
{
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[^0-9]");
            return reg.IsMatch(str);
}

XAMP

<TextBox PreviewTextInput="NumericOnly" />

Poniżej link do obszernego użycia walidacji
http://www.codeproject.com/Articles/15239/Validation-in-Windows-Presentation-Foundation

Kategoria: 

Format waluty na postawie systemu

1) In app.xaml override OnStartup() and add

 System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("et-EE");

2) Define in XAML @ Window level -

xmlns:sysglb="clr-namespace:System.Globalization;assembly=mscorlib"

3) In XAML

<TextBox Text="{Binding Path=Price, StringFormat='{}{0:C}', ConverterCulture={x:Static sysglb:CultureInfo.CurrentUICulture}}" />

This correctly picks up any custom regional settings. Although I'm using a manually created CultureInfoin the first step, I'm sure it's possible to pass in one of the static types - eg.System.Globalization.CultureInfo.CurrentCulture (I haven't tested it though...)

Kategoria: 

Strony

Subskrybuj Notatki dla .NET w języku programowania C#