Cú pháp phân trang trong SQL Server 2012 OFFSET …. FETCH

</div>
SELECT ProductID, Name
FROM Production.Product
ORDER BY Name
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;
Bỏ 0 dòng đầu tiên và lấy tiếp 10 dòng tiếp theo.
Sưu Tầm
Advertisements

 

CREATE PROCEDURE [dbo].[spPhanTrang_Table] (
 @PageNumber int,
 @PageSize int
)

AS
 DECLARE @Start int, @End int
 BEGIN TRANSACTION GetDataSet
 SET @Start = (((@PageNumber - 1) * @PageSize) + 1)
 IF @@ERROR <> 0
  GOTO ErrorHandler
 SET @End = (@Start + @PageSize - 1)
 IF @@ERROR <> 0
  GOTO ErrorHandler
 CREATE TABLE #TemporaryTable (
  Row int IDENTITY(1,1) PRIMARY KEY,
  CateID int, CateName nvarchar(100)
 )
 IF @@ERROR <> 0
   GOTO ErrorHandler
 INSERT INTO #TemporaryTable
  SELECT CateID, CateName FROM [TB_Category] 
 IF @@ERROR <> 0
  GOTO ErrorHandler
 SELECT CateID, CateName  
  FROM #TemporaryTable
  WHERE (Row >= @Start) AND (Row <= @End)
 IF @@ERROR <> 0
  GOTO ErrorHandler
 DROP TABLE #TemporaryTable
 COMMIT TRANSACTION GetDataSet
 RETURN 0
ErrorHandler:
ROLLBACK TRANSACTION GetDataSet
RETURN @@ERROR

 

Nguồn hwme

Giải thích phía trên là đoạn code phân trang gồm 2 tham số.

Giả sử thực thi EXEC spPhanTrang_Table (1,20)

Nếu tại vị tri trang 1 no sẽ hiển thị 20 row đầu tiên, nếu vị trí trang là số 2 nó sẽ hiển thị row từ 21 đến 21+20-1 = 40

SQL Dependency Tự động trả dữ liệu về khi có thay đổi trong DB

SQL Dependency Tự động trả dữ liệu về khi có thay đổi trong DB

Sưu tầm được của một anh khá giỏi
SqlDependency Tự động trả dữ liệu về khi có thay đổi trong Database Source
Các bạn xem video xong rồi thì download source code nhé
source https://drive.google.com/open?id=0B4eaOrCGuAmPZ0lPUkppLTlyOXM
Nguon: a Nguyễn Cảnh Hưng

Serializing Json C# trong UWP

Tôi có một API như sau

http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=2de143494c0b295cca9337e1e96b00e0


{"coord":{"lon":138.93,"lat":34.97},"weather":[{"id":800,"main":"Clear","description":"Sky is Clear","icon":"01n"}],"base":"stations","main":{"temp":279.45,"pressure":1018,"humidity":20,"temp_min":279.26,"temp_max":279.82},"wind":{"speed":0.51,"deg":40,"gust":1.03},"clouds":{"all":0},"dt":1451390210,"sys":{"type":3,"id":10354,"message":0.0088,"country":"JP","sunrise":1451339482,"sunset":1451374868},"id":1851632,"name":"Shuzenji","cod":200}

MainPage


<StackPanel Background="HotPink">;
<Button Content="Get Weather" Click="Button_Click"/>;
<TextBlock Name="ResultTextBox"/>;
< /StackPanel>;

Sử dụng http://json2csharp.com/ để biến đổi json thành class được


public class Coord
{
 public double lon { get; set; }
 public double lat { get; set; }
}

public class Weather
{
 public int id { get; set; }
 public string main { get; set; }
 public string description { get; set; }
 public string icon { get; set; }
}

public class Main
{
 public double temp { get; set; }
 public int pressure { get; set; }
 public int humidity { get; set; }
 public double temp_min { get; set; }
 public double temp_max { get; set; }
}

public class Wind
{
 public double speed { get; set; }
 public int deg { get; set; }
 public double gust { get; set; }
}

public class Clouds
{
 public int all { get; set; }
}

public class Sys
{
 public int type { get; set; }
 public int id { get; set; }
 public double message { get; set; }
 public string country { get; set; }
 public int sunrise { get; set; }
 public int sunset { get; set; }
}

public class RootObject
{
 public Coord coord { get; set; }
 public List&lt;Weather&gt; weather { get; set; }
 public string @base { get; set; }
 public Main main { get; set; }
 public Wind wind { get; set; }
 public Clouds clouds { get; set; }
 public int dt { get; set; }
 public Sys sys { get; set; }
 public int id { get; set; }
 public string name { get; set; }
 public int cod { get; set; }
}

Tạo Class OpenWeatherMapProxy.cs để xử lý các dữ liệu từ API

Copy đoạn code phía trên vào class và thêm

[DataContract]

[DataMember]

Sử dụng thư viện

using System.Runtime.Serialization;

Ta được


public class OpenWeatherMapProxy
{

}
[DataContract]
 public class Coord
 {
 [DataMember]
 public double lon { get; set; }
 [DataMember]
 public double lat { get; set; }
 }

 [DataContract]
 public class Weather
 {
 [DataMember]
 public int id { get; set; }
 [DataMember]
 public string main { get; set; }
 [DataMember]
 public string description { get; set; }
 [DataMember]
 public string icon { get; set; }
 }
 [DataContract]
 public class Main
 {
 [DataMember]
 public double temp { get; set; }
 [DataMember]
 public int pressure { get; set; }
 [DataMember]
 public int humidity { get; set; }
 [DataMember]
 public double temp_min { get; set; }
 [DataMember]
 public double temp_max { get; set; }
 }
 [DataContract]
 public class Wind
 {
 [DataMember]
 public double speed { get; set; }
 [DataMember]
 public int deg { get; set; }
 [DataMember]
 public double gust { get; set; }
 }
 [DataContract]
 public class Clouds
 {
 [DataMember]
 public int all { get; set; }
 }
 [DataContract]
 public class Sys
 {
 [DataMember]
 public int type { get; set; }
 [DataMember]
 public int id { get; set; }
 [DataMember]
 public double message { get; set; }
 [DataMember]
 public string country { get; set; }
 [DataMember]
 public int sunrise { get; set; }
 [DataMember]
 public int sunset { get; set; }
 }
 [DataContract]
 public class RootObject
 {
 [DataMember]
 public Coord coord { get; set; }
 [DataMember]
 public List<Weather> weather { get; set; }
 [DataMember]
 public string @base { get; set; }
 [DataMember]
 public Main main { get; set; }
 [DataMember]
 public Wind wind { get; set; }
 [DataMember]
 public Clouds clouds { get; set; }
 [DataMember]
 public int dt { get; set; }
 [DataMember]
 public Sys sys { get; set; }
 [DataMember]
 public int id { get; set; }
 [DataMember]
 public string name { get; set; }
 [DataMember]
 public int cod { get; set; }
 }

Sử lý phương thức GetWeather


public class OpenWeatherMapProxy
{
public async static Task<RootObject> GetWeather(double lat,double lon)
{
var http = new HttpClient();
var response = await http.GetAsync("http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=2de143494c0b295cca9337e1e96b00e0");
var result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof(RootObject));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data = (RootObject)serializer.ReadObject(ms);
return data;
}
}

 

 

Unobtrusive Validation

Bài viết này sẽ hướng dẫn bạn hiển thị các cột nào cần có giá trị và những cột nào theo định dạng của nó

ss01

Code ban đầu:

<form class="form-horizontal" method="post">
<fieldset>
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
< input type="text" class="input-medium" id="name" name="name" ></div>
</div>
<div class="control-group">
<label class="control-label" for="email">Email</label>
<div class="controls">
<input type="text" class="input-medium" id="email" name="email"></div>
</div>
<div class="control-group">
<label class="control-label" for="website">Website</label>
<div class="controls">
<input type="text" class="input-medium" id="website" name="website" ></div>
</div>
<div class="control-group">
<label class="control-label" for="comment">Message</label>
<div class="controls">
<textarea class="input-medium" id="comment" rows="3" name="comment" ></textarea>
"comment" data-valmsg-replace="true"></span></div>
</div>
<div class="form-actions">
<button type="submit" class="btn">Send</button>
@if (ViewBag.MailSent != null && ViewBag.MailSent)
{
<div>Mail Sent!</div>
}</div></fieldset>
</form>

Để đánh đấu thuộc tính quan trọng tôi thêm 2 thuộc


data-val="true" data-val-required="*"

 

Kết quả:

</pre>
<input type="text" class="input-medium" id="name" name="name" data-val="true" data-val-required="*">
<pre>

Nhưng để hiển thị thông báo ta phải thêm đằng sau ô nhập một đoạn code html như sau

</pre>
<input type="text" class="input-medium" id="name" name="name" data-val="true" data-val-required="*">
<span class="field-validation-valid" data-valmsg-for="name" data-valmsg-replace="true"></span>
<pre>

Nếu bạn muôn quy định định dạng cụ thể thuộc tính là Email bạn có thể ghi thêm thuộc tính cho input


data-val-email="Not Valid"

Tương tự đối với các ô nhập khác. Kết quả thu được sẽ như hình đầu tiên.

 

 

Bài 2: Xây đựng ứng dụng Cordova cho Windows Platflorm

Bài này sẽ tôi sẽ cho bạn thấy làm thế nào để thiết lập môi trường phát triển SDK để xây đựng và triển khai một ứng dụng Cordova cho windows 8, windows 8.1, windows Phone 8.1 và windows 10 Universal App Platform. Cũng như việc chỉnh sửa code trong Visual Studio.

Cấu hình cần thiết

Để phát triển ứng dụng cho nền tảng Windows, bạn cần:

  1. A Windows 8.1, 32 hoặc 64-bit machine (Home, Pro, hoặc Enterprise editions) with minimum 4 GB of RAM.
  2. Windows 8.0, 8.1 hoặc 10, 32 hoặc 64-bit Home, Pro, hoặc Enterprise editions, along with Visual Studio 2012 Express hoặc Visual Studio 2013. Chú ý Visual Studio 2015 không hỗ trợ build windows 8.0.

Để phát triển apps cho Windows 8.0 and 8.1 (bao gồm Windows Phone 8.1):

  1. Windows 8.1 hoặc Windows 10, 32 hoặc 64-bit Home, Pro, hoặc Enterprise editions, với Visual Studio 2013 Express hoặc cao hơn.
  2. Đối Windows Phone emulathors, Windows 8.1 (x64) Professional edition hoặc cao hơn, và a processor có hỗ trợ Client Hyper-V and Second Level Address Translation (SLAT).
  3. Visual Studio 2013 fhoặc Windows (Express hoặc cao hơn).

Để phát triển apps cho Windows 10:

  1. Windows 8.1 hoạc Windows 10 Technical Preview 2, 32- hoặc 64-bit, cùng với Visual Studio 2015 RC hoặc cao hơn.

Chú ý: Một ứng dụng xây đựng cho windows phone 8.1 có thể không chạy trên windows phone 8.0 nhưng một ứng dụng windows phone 8.0 có thể chạy trên windows phone 8.1

Phát triển một ứng dụng Cordova bạn sẽ sử dụng một PC chạy windows, nhưng bạn cũng có thể phát triên trên một PC Mac bằng cách chạy môi trường virtual machine hoặc sử dụng Boot Cap đẻ dual-boot một phân vùng Windows 8.1. Bạn có thể tham khảo các link sau đây:

Cài đặt SDK

Install bất kỳ edition của Visual Studio tương ứng với the version requirements listed phía trên.

Hinh00

Đối với Windows 10, trình cài đặt Visual Studio có một tùy chọn Universal Windows Apps. Hãy đảm bảo được lựa chọn khi yêu cầu cài đặt SDK.

Create một New Project

Tôi sẽ tạo một Project tên là HelloWorld và thêm Platform Windows

$cordova create hello com.example.hello HelloWorld
$cd hello
$cordova platform add windows

Mở project và Deloy App bằng Visual

Với việc xây dựng ứng dụng Cordova bạn có thể sử dụng Visual Studio để lập trình ứng dụng dễ dàng bằng cách mở tập tin .sln trong File Explorer.

Hinh01

Các thành phần của Cordova được hiển thị trong solution, và thư mục www chứa mã nguồn dựa trên web bao gồm trang chủ index.html.

Hinh02

Tôi có thể dễ dàng deloy ứng dụng một cách đơn giản như sau:

Hinh03

Kết quả

Hinh04

<Còn Tiếp>

A Client-side Command Line App in Python

import sys,requests,json

BASE_URL =’http://raps&#8217;

def printLightToconsole(light):
print(‘light {0} has house code of {1} and unit code of {2}’.
format(light[‘lightId’],light[‘houseCode’],light[‘unitCode’]))

def printSingleLight(lightId):
returnedJson = requests.get(BASE_URL+’/’+lightId).json()
printfSingleLight(returnedJson)

def printAllLights():
returnedJson = requests.get(BASE_URL).json()
for light in returnedJson[‘light’]
printLightToconsole(light)

def addLight(lightId,houseCode,unitCode):
lightsJson = json.dumps({“lightId”:lightId,”houseCode”:houseCode,”unitCode”:unitCode})
requestHeaders = {‘content-type’:’application/json’,’Accept’:’text/plain’}
requests.post(BASE_URL,data=lightsJson,headers=requestHeaders)
def setLightState(lightId,command):
requests.put(BASE_URL+’/{0}/{1}’.format(lightId,command))

def deleteLight(lightId):
requests.delete(BASE_URL+’/’+lightId)

def process(argv):
if(argv[0] == ‘getall’):
printAllLights()
elif(argv[0] == ‘get’)
printSingleLight(argv[1])
elif(argv[0] == ‘add’)
addLight(argv[1],argv[2],argv[3])
elif(argv[0] == ‘set’)
setLightState(argv[1],argv[2])
elif(argv[0] == ‘delete’)
deleteLight(argv[1])

if __name__ == ‘__main__’:
process(sys.argv[1:])