Select random questions from db

Bài dưới gợi ý một số cách lấy random câu hỏi từ csdl

Cú pháp với cơ sở dữ liệu MySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Cú pháp với cơ sở dữ liệu PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Cú pháp với cơ sở dữ liệu Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

Cú pháp với cơ sở dữ liệu IBM DB2

SELECT column, RAND() as IDX 
FROM table 
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Cú pháp với cơ sở dữ liệu Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Advertisements

Error – microsoft ace oledb 12.0 is not registered on the local machine

Lỗi:

Microsoft ace oledb 12.0 is not registered on the local machine

Khắc phục:

  • Giải pháp 1: Thiết lập Target biên dịch của VS là x86
  • Giải pháp 2: Cài Access Database Engine

 

Thiết lập giá trị cho textbox trong RDLC dynamically

Hướng dẫn các bước thực hiện thay đổi giá trị của textbox trong RDLC report một cách tự động:

  1. Add new Report parameter, thiết lập tên cho Parameter (ví dụ Par0)
  2. Chèn thêm một textbox vào report ở vị trí mong muốn
  3. Click chuột phải trên textbox > expression > chọn Parameters và chọn tên của paramter trong danh sách các Parameter của report. Sau khi chọn, code của report như sau: =Parameters!Par0.Value
  4. Viết mã cho trong code muốn gán giá trị cho report

DataSet ds = new DataSet();
da.Fill(ds,”TenTable”);

ReportDataSource rds = new ReportDataSource(“QLLSDataSet_TenTable”, ds.Tables[“TenTable”]);

form.reportViewer1.Reset();
form.reportViewer1.LocalReport.ReportEmbeddedResource = “QLLS.rptHoChieu.rdlc”;
form.reportViewer1.LocalReport.DataSources.Clear();
form.reportViewer1.LocalReport.DataSources.Add(rds);
ReportParameter p = new ReportParameter(“Par0”, “Nội dung cần gán cho textbox”);
form.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { p });
form.reportViewer1.LocalReport.Refresh();
form.reportViewer1.RefreshReport();

CLR-Stored Procedures

CLR stored procedures là gì?

CLR stored procedures là stored procedure được tạo bởi managed code (C#, VB.NET, …)

Khi nào sử dụng CLR stored procedures?

Khi stored procedure không viết được với T-SQL

Cách tạo clr stored procedures?

Các bước dưới đây hướng dẫn cách xây dựng CLR – Stored Procedured

1. Tạo Database project trong C# và viết mã như sau

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void SqlStoredProcedure1 ()
{
SqlPipe pipe = SqlContext.Pipe;
pipe.Send(“Hello world”);
}
}

2. Viết mã trong SQL Server

clrSP

DeSerialize Json data – firebase

Mã nguồn dưới đây hướng dẫn cách Deserialize Json data đọc từ firebase

Tạo lớp Firebaseroot và các thuộc tính như dưới đây

public class Todo
{
public string name;
public int priority;
}

Khai báo FirebaseConfig

IFirebaseConfig config = new FirebaseConfig
{
AuthSecret = “your-secret-key”,
BasePath = “your-firebase-url/”
};

Mã nguồn để đọc dữ liệu từ firebase và deserialize

IFirebaseClient client = new FirebaseClient(config);
FirebaseResponse response = client.Get(“todo”);//Key to read from Firebase

Dictionary<string, Todo> entryDict = JsonConvert.DeserializeObject<Dictionary<string, Todo>>(response.Body);

List<Todo> entries = entryDict.Select(x => x.Value).ToList();

foreach (var item in entries)
{
this.listBox1.Items.Add(item.name); //Add item into ListBox1
}

Sử dụng Firebase với FireSharp

Các bước dưới đây hướng dẫn bạn sử dụng Firebase với FireSharp trong .NET (C#,VB.NET).

Các bước thực hiện:

  • Cài đặt thư viện FireSharp bằng cách mở Package NuGet Manager Console

Install-Package FireSharp

  • Thiết lập cấu hình và khai báo đối tượng FirebaseClient
 IFirebaseConfig config = new FirebaseConfig
  {
     AuthSecret = "your_firebase_secret",
     BasePath = "https://yourfirebase.firebaseio.com/"
  };
IFirebaseClient  client = new FirebaseClient(config);
  •  Thêm dữ liệu vào Firebase với PUSH method
var todo = new Todo
 {
 name = "Execute PUSH",
 priority = 2
 };
 PushResponse response = client.Push("Key", todo);
  • Update firebase data với Set method
 var todo = new Todo
 {
 name = "Execute SET",
 priority = 2
 };
 SetResponse response = client.Set("key", todo);
  • Get data from Firebase
 FirebaseResponse response = await _client.GetAsync("todos/set");
 Todo todo=response.ResultAs<Todo>(); //The response will contain the data being retreived