Thêm DataTable vào DataBase SQL

Bước 1: Định nghĩa một kiểu bảng mới trong SQL. 

CREATE TYPE [dbo].[MyTableType] AS TABLE( [Id] int NOT NULL, [Name] [nvarchar](128) NULL )

Bước 2: Tạo một store procedure

CREATE PROCEDURE [dbo].[InsertTable]

@myTableType MyTableType readonly

AS BEGIN

insert into [dbo].Records select * from @myTableType

END

Bước 3: Thực thi store procedure InsertTable với parameter là một datatable cần insert vào database

using (var command = new SqlCommand("InsertTable") {CommandType = CommandType.StoredProcedure})

{ var dt = new DataTable();

//create your own data table

command.Parameters.Add(new SqlParameter("@myTableType", dt));

SqlHelper.Exec(command); }

Kiểm tra trường có thể convert sang datetime?

 

 

sql

Cách kiểm tra một trường kiểu nvarchar với định dạng ngày/tháng có thể chuyển đổi sang kiểu datetime trong SQL server? Để kiểm tra ta dùng lệnh select với điều kiện ISDATE(TenTruong) = 0, nếu trả về là rỗng thì trường này hoàn toàn có thể convert sang datetime và ngược lại. VD: select * from TiepNhanHangHoa where ISDATE(Images)=0.

Cắt dữ liệu định kỳ

Khi dữ liệu trong csdl ngày càng nhiều, ngoài việc backup dữ liệu, bạn còn phải cắt bớt những dữ liệu ra khỏi hệ thống để hệ thống hoạt động nhanh hơn.

Các bước cắt dữ liệu được thực hiện như sau:

1. Chia dữ liệu theo theo, mỗi lần xóa sẽ xóa một tháng dữ liệu, như vậy chúng ta sẽ xóa 12 lần cho mỗi năm dữ liệu

Xóa bảng chi tiết trước, phải tính số tháng từ công thức để ra được ID.

DELETE FROM [dbo].[ChiTietTiepNhanHangHoa]
where ID_TiepNhanHangHoa < 1097000001

Xóa bảng tiếp nhận sau khi đã xóa bảng chi Tiết

DELETE FROM [dbo].[TiepNhanHangHoa]

where NgayTiepNhan < '2017-01-01'

2. Xóa những bảng điều xe, cũng như bảng excel lên hàng.

 a) Xóa bảng BangExcel_LenHang_New:

  Bước 1: Tìm ID bằng cách: select top 1 ID from BangExcel_LenHang_New where ID_ChuyenXe=(select top 1 ID_ChuyenXe from Bang_DieuXe where Convert(date,NgayDieuXe)<'2018-10-01' order by NgayDieuXe desc)

  Bước 2: Xóa BangExcel_LenHang_New với ID nhỏ hơn hoặc bằng ID tìm được ở "Bước 1". VD: ID "Bước 1" tìm được là 123456.

  delete from BangExcel_LenHang_New where ID<=123456

 b) Xóa bảng Bang_DieuXe: delete from Bang_DieuXe where NgayDieuXe<'2017-01-01'

Người chia sẽ

Huỳnh Lý Thanh Nhàn

Hướng dẫn định dạng tiền tệ trong textbox C# với dấu phẩy

Để định dạng tiền tệ trong textbox với dấu phẩy cần làm theo hai bước sau:

Bước 1: Thêm thư viện:

using System.Globalization;

Bước 2: Thêm đoạn code sau vào sự kiện TextChange của textbox muốn định dạng

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
decimal value=decimal.Parse(texbox1.Text,System.Globalization.NumberStyles.AllowThousands);
texbox1.Text = String.Format(culture, "{0:N0}", value);
texbox1.Select(texbox1.Text.Length, 0);

Bước 3: Chọn font hiển thị Arial cho textbox.

Lưu ý: không nên chọn font "Microsoft Sans Serif" vì font này không hỗ trợ dấu dấu phẩy trong định dạng tiền tệ "en-US"

Nguyễn Tuấn Khiêm

Hướng dẫn Binding Extra Report với nhiều Datasource

Hôm nay mình sẽ hướng dẫn các bạn cách sử dụng nhiều datasource trên một report.

Bước 1: Tạo DetailReport_Band bằng cách nhấp chuột phải vào Detail band và chọn như hình sau:

Bước 2: Thêm table vào Detail6 và đặt tên cho thuộc tính Name, để Binding các trường trong datasoure

Bước 3: Khởi tạo DataTable dùng để làm Datasource

using System.Drawing;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using System.Data;
using Data;
using System.Globalization;

namespace VanTaiToChau_Desktop.Report
{
    public partial class report_ChiTietKhauTru : DevExpress.XtraReports.UI.XtraReport
    {
        public report_ChiTietKhauTru()
        {
            InitializeComponent();
        }
        DataTable dt_NoCuoc_di = new TiepNhanHangHoaData().getDSNoCuoc_Di(Common.Truyendulieu.SAVE_IDTRAM, Common.Truyendulieu.ID_TramDenKhauTru, Common.Truyendulieu.NgayKhauTru);
	}
}

Bước 4: Tạo sự kiện BeforePrint cho report và thêm datasource cho DetailReport_Band

using System.Drawing;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using System.Data;
using Data;
using System.Globalization;

namespace VanTaiToChau_Desktop.Report
{
    public partial class report_ChiTietKhauTru : DevExpress.XtraReports.UI.XtraReport
    {
        public report_ChiTietKhauTru()
        {
            InitializeComponent();
        }
        DataTable dt_NoCuoc_di = new TiepNhanHangHoaData().getDSNoCuoc_Di(Common.Truyendulieu.SAVE_IDTRAM, Common.Truyendulieu.ID_TramDenKhauTru, Common.Truyendulieu.NgayKhauTru);
		
        private void report_ChiTietKhauTru_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
        {
            if (dt_NoCuoc_di.Rows.Count > 0)
            {
                DetailReport.DataSource = dt_NoCuoc_di;
                ID_TiepNhanHangHoa.DataBindings.Add("Text", dt_NoCuoc_di, "ID_TiepNhanHangHoa");
                SoTien.DataBindings.Add("Text", dt_NoCuoc_di, "TongTien", "{0:0,0}");
            }
    
        }
    }
}


Lưu ý: Để có thể Binding nhiều datasoure trên report cần tạo nhiều DetailReport_Band và thực hiện tương tự các bước trên

Tác giả: Nguyễn Tuấn Khiêm