Friday, March 24, 2017

[SQL] MERGE 搭配 Linked Server

有個需求想要透過 Linked Server 搭配 MERGE 語法來同步資料,在 try 的時候才發現到,原來 MERGE 語法的 Target_Table 不能是遠端 Table,會出現下面這段錯誤訊息
MERGE 陳述式的目標不能是遠端資料表、遠端檢視或針對遠端資料表的檢視
MSDN 上也有找到相關說明,指出 Target_Table 不能是遠端資料表,但 Table_Source 可以喔

Friday, March 17, 2017

2Y9M-笠頂山

這次原本只計畫要走到土瓦你休息站,不過從酋長休息站出發後,有走到一處沒有人的休息站,看起來不像是土瓦你,之後又發現之前登頂叉路,叉路旁看到角點指示牌,舅舅就說那就上去吧,一整個霸氣外露。

辛苦舅舅,每次都陪我們一起來,需要有壯丁幫忙揹雜物

2Y9M - 笠頂山

酋長休息站,保暖要穿好穿暖

2Y9M - 笠頂山


Thursday, March 16, 2017

[Xamarin] 設定 Label.Text

[Xamarin.Forms] 從XAML開始 教學影片中在 xaml 內指定 Label View 的 x:Name,就可以在 cs 檔案 (Code Behind) 內,直接指定 Label

該筆記內容是在 cs 內把 Label.Text 從預設的 Welcome to Xamarin Forms! 改為 Hello World to Xamarin Forms!

xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:App1"
    x:Class="App1.MainPage">

    <Label 
        x:Name="lbl"
        Text="Welcome to Xamarin Forms!" 
        VerticalOptions="Center" 
        HorizontalOptions="Center" />

</ContentPage>
cs 檔案
using Xamarin.Forms.Xaml;

namespace App1
{
    [XamlCompilation(XamlCompilationOptions.Compile)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            lbl.Text = "Hello World to Xamarin Forms!";
        }
    }
}
[Xamarin] 設定 Label.Text

Wednesday, March 15, 2017

[Xamarin] DataBinding 簡易範例

參考這兩篇文章的筆記
利用 Slider 控制兩個 Label 的 Rotate 和 FontSize 屬性,來了解 DataBinding

Xaml 內容
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:DataBindingSample"
             x:Class="DataBindingSample.MainPage">

    <StackLayout
        BindingContext="{x:Reference Name = slider}">

        <Label 
            Text="ROTATION"
            FontAttributes="Bold"
            FontSize="Large"
            Rotation="{Binding Path=Value}"
            HorizontalOptions="Center"
            VerticalOptions="CenterAndExpand" />

        <Label 
            Text="FontSize"
            FontAttributes="Bold"
            FontSize="{Binding Path=Value}"
            HorizontalOptions="Center"
            VerticalOptions="CenterAndExpand" />

        <Slider 
            x:Name="slider"
            Maximum="360"
            VerticalOptions="CenterAndExpand" />

        <Label 
          Text="{
            Binding Value,
            StringFormat='Slider:{0:F0}'}"
          FontAttributes="Bold"
          FontSize="Large"
          HorizontalOptions="Center"
          VerticalOptions="CenterAndExpand" />

    </StackLayout>

</ContentPage>
  • 重點1
BindingContext="{x:Reference Name = slider}" 
// 可以寫成
BindingContext="{x:Reference slider}" 
// 省略 Name
  • 重點2
可以在各別 Label 內設定 BindingContext
<Label Text="ROTATION" BindingContext="{x:Reference Name = slider}">
<Label Text="FontSize" BindingContext="{x:Reference Name = slider}">
或是直接在 StackLayout 上設定 BindingContext
<StackLayout BindingContext="{x:Reference Name = slider}">
  • 重點3
Rotation="{Binding Path=Value}"
// 可以寫成
Rotation="{Binding Value}"
// 省略 Path
  • 重點4
Text="{Binding Value,StringFormat='Slider:{0:F0}'}"
StringFormat 用單引號包起來

顯示結果
[Xamarin] DataBindng 簡易範例

Monday, March 13, 2017

[Xamarin] XamlCompilation

閱讀 [Xamarin.Forms] 從XAML開始 的筆記

重點:
  • 設定 XamlCompilation 可以讓 xaml 在編譯時期進行偵錯,而不是執行時才發現錯誤
  • XamlCompilation 是 attribute,可以放在 class、namespace 或 assembly 上
  • 要引用 using Xamarin.Forms.Xaml 才能使用
把 XamlCompilation 設定在 class、namespcae 或 assembly 上

[Xamarin] XamlCompilation-1

[Xamarin] XamlCompilation-2

在 xaml 內把 Text Property 故意改錯,執行時期才在模擬器上顯示錯誤

[Xamarin] XamlCompilation-3

在 class 上指定 XamlCompilation,編譯時期在錯誤清單內就會顯示異常

[Xamarin] XamlCompilation-4