Thứ Tư, 5 tháng 8, 2009

Lỗi lần đầu sử dụng IIS 7 trong Window 7 và Vista

1. Cách config IIS trong Window 7/ Window Vista

- Vào Start/ Control Panel / Programs and Features/ Turn Windows featúe on or off
- Xem hình thế này là OK


2 Sau đó, cài 1 số lệnh sau để chạy SQL Server nếu có lỗi :

3. Xử lý lỗi :

Login failed for user 'IIS APPPOOL\DefaultAppPool'.

Làm theo thứ tự hình ảnh

Đo dung lượng internet bằng C#

Author by : Mohamed Mansour,

How to calculate network bandwidth speed in c#

http://www.m0interactive.com/archives/2008/02/06/how_to_calculate_network_bandwidth_speed_in_c_.html


Hôm nọ. đọc trong ddth.com có 1 bạn nhờ tìm về code đo dung lượng tính tóan dung lượng internet bằng C#. Mình hứng chí lên, tìm tầm 5 phút là ra cái đoạn code này. Post lên đây. khi nào sẽ có lúc dùng.

Đầu tiên là hàm kiểm tra máy tính có kết nối với Internet không : (không dùng trong code)
static uint uConnection = 0x20;
[System.Runtime.InteropServices.DllImport("wininet.dll")]

private static extern bool InternetGetConnectedState(ref uint connected, uint reserved);
//-----Còn đây là code chạy OK trên C# nè. He he.
Giao diện :


Code :
using System;
using System.Net.NetworkInformation;
using System.Windows.Forms;

namespace InterfaceTrafficWatch
{
///
/// Network Interface Traffic Watch
/// by Mohamed Mansour
///
/// Free to use under GPL open source license!
///
public partial class MainForm : Form
{
///
/// Timer Update (every 1 sec)
///
private const double timerUpdate = 1000;

///
/// Interface Storage
///
private NetworkInterface[] nicArr;

///
/// Main Timer Object
/// (we could use something more efficient such
/// as interop calls to HighPerformanceTimers)
///
private Timer timer;

///
/// Constructor
///
public MainForm()
{
InitializeComponent();
InitializeNetworkInterface();
InitializeTimer();
}

///
/// Initialize all network interfaces on this computer
///
private void InitializeNetworkInterface()
{
// Grab all local interfaces to this computer
nicArr = NetworkInterface.GetAllNetworkInterfaces();

// Add each interface name to the combo box
for (int i = 0; i < nicArr.Length; i++)
cmbInterface.Items.Add(nicArr[i].Name);

// Change the initial selection to the first interface
cmbInterface.SelectedIndex = 0;
}

///
/// Initialize the Timer
///
private void InitializeTimer()
{
timer = new Timer();
timer.Interval = (int)timerUpdate;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}

///
/// Update GUI components for the network interfaces
///
private void UpdateNetworkInterface()
{
// Grab NetworkInterface object that describes the current interface
NetworkInterface nic = nicArr[cmbInterface.SelectedIndex];

// Grab the stats for that interface
IPv4InterfaceStatistics interfaceStats = nic.GetIPv4Statistics();

// Calculate the speed of bytes going in and out
// NOTE: we could use something faster and more reliable than Windows Forms Tiemr
// such as HighPerformanceTimer http://www.m0interactive.com/archives/2006/12/21/high_resolution_timer_in_net_2_0.html
int bytesSentSpeed = (int)(interfaceStats.BytesSent - double.Parse(lblBytesSent.Text)) / 1024;
int bytesReceivedSpeed = (int)(interfaceStats.BytesReceived - double.Parse(lblBytesReceived.Text)) / 1024;

// Update the labels
lblSpeed.Text = nic.Speed.ToString();
lblInterfaceType.Text = nic.NetworkInterfaceType.ToString();
lblSpeed.Text = nic.Speed.ToString();
lblBytesReceived.Text = interfaceStats.BytesReceived.ToString();
lblBytesSent.Text = interfaceStats.BytesSent.ToString();
lblUpload.Text = bytesSentSpeed.ToString() + " KB/s";
lblDownload.Text = bytesReceivedSpeed.ToString() + " KB/s";

}

///
/// The Timer event for each Tick (second) to update the UI
///
///
///
void timer_Tick(object sender, EventArgs e)
{
UpdateNetworkInterface();
}

}
}

Xuất dữ liệu ra file excel dạng báo cáo

Hic. Đây là code để xuất dữ liệu ra dạng như thế này :

Ho ten : Tham so
Dia chi : Tham so
-------Danh muc mat hang------
STT Ten hang SL Don gia Thanh tien
A A 1 1 1
-------------------------------------

Yêu cầu : File add reference thư viện Microsoft.Excel Library 11/12 trong phần COM của VS2005.
Đây là code :

Tham so dau vao :
a. Mang gia tri cua khach hang
b. Danh mục các sản phẩm trong giỏ hàng.
c. Tổng tiền
using System;
using System.Data;
using XLS = Microsoft.Office.Interop.Excel;
using System.Collections.Generic;
using Model;
///
/// Summary description for ExcelHelp
///
public class ExcelHelp
{
public ExcelHelp()
{
//
// TODO: Add constructor logic here
//
}
public void Export(string filePath, string[] para, IList ilist,float total)
{

//Create exe appliaction
XLS.Application objExcel = new Microsoft.Office.Interop.Excel.Application();
objExcel.Application.DisplayAlerts = false;

//Tao boook
XLS.Workbook objBook = objExcel.Workbooks.Add(XLS.XlWBATemplate.xlWBATWorksheet);


try
{
XLS.Worksheet objSheet = (XLS.Worksheet)objBook.ActiveSheet;
objSheet.Name = "Test";
//Save customer infor

objSheet.get_Range( "A2", "A2").Value2= "Họ và tên :";
objSheet.get_Range( "A3", "A3").Value2= "Địa chỉ giao hàng :";
objSheet.get_Range( "A4", "A4").Value2= "Ngày giao hàng :";
objSheet.get_Range( "A5", "A5").Value2= "Hình thức thanh toán :";
objSheet.get_Range( "A6", "A6").Value2= "Di động :";
objSheet.get_Range( "A7", "A7").Value2= "Email :";
objSheet.get_Range( "A8", "A8").Value2= "Ghi chú :";

objSheet.get_Range( "B2", "B2").Value2= para[0];
objSheet.get_Range( "B3", "B3").Value2= para[1];
objSheet.get_Range( "B4", "B4").Value2= para[2];
objSheet.get_Range( "B5", "B5").Value2= para[3];
objSheet.get_Range( "B6", "B6").Value2= para[4];
objSheet.get_Range( "B7", "B7").Value2= para[5];
objSheet.get_Range( "B8", "B8").Value2= para[6];
// Luu thong tin gio hang

//Cot tieu de gio hang
objSheet.get_Range( "A10", "A10").Value2= "STT";
objSheet.get_Range( "B10", "B10").Value2= "Sản phẩm";
objSheet.get_Range( "C10", "C10").Value2= "Số lượng";
objSheet.get_Range( "D10", "D10").Value2= "Đơn giá";
objSheet.get_Range( "E10", "E10").Value2= "Thành tiền";
int i = 11;
for (int k = 0; k < ilist.Count; k++)
{
objSheet.get_Range( "A" + i.ToString(), "A" + i.ToString()).Value2= k + 1;
objSheet.get_Range( "B" + i.ToString(), "B" + i.ToString()).Value2= string.IsNullOrEmpty(ilist[k].ProductName_Vi) ? ilist[k].ProductName_Vi : ilist[k].ProductName_En;
objSheet.get_Range( "C" + i.ToString(), "C" + i.ToString()).Value2= ilist[k].Amount.ToString();
objSheet.get_Range( "D" + i.ToString(), "D" + i.ToString()).Value2= ilist[k].Price.ToString();
objSheet.get_Range( "E" + i.ToString(), "E" + i.ToString()).Value2= ilist[k].Amount * ilist[k].Price;

i++;
}
i++;
objSheet.get_Range( "B" + i.ToString(), "B" + i.ToString()).Value2= "Tổng giá trị thanh toán: " + total.ToString() +" VND";
//ket thuc
//objSheet.Cells.AutoFit();
objBook.SaveAs(filePath,XLS.XlFileFormat.xlXMLSpreadsheet,null,null,false,false,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,null,null,null,null,null);



}

catch (Exception ex)
{
throw new Exception("Lỗi trong phương thức Excel.LoadData :" + ex.Message);
}
finally
{
objBook.Close(null, null, null);
objBook = null;

objExcel.Quit();
objExcel = null;

//Tat tien trinh cua Excel
//Lam nhu the se tat bot cai Ẽcel
System.Diagnostics.ProcessStartInfo infor = new System.Diagnostics.ProcessStartInfo("taskkill", " /f /im EXCEL.EXE");
infor.CreateNoWindow = false;
//infor.
infor.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(infor);
GC.Collect();
}
}
}

Three tier layer

Ban có thể tham khảo đường link của Codeproject.com để biết rõ hơn về nó.
Theo ý chủ quan của mình nó khá hay và dễ hiểu
[url=]Three Layer Architect[/url] Copyright by codeproject.com

Mình xin nói qua nó như thế này :

Hình vẽ này thể hiện rằng mô hình lập trình 3 lop sẽ tương tác với CSDL như hình vẽ


Hình vẽ thể hiện code thực tế mà coder sẽ thực hiện. Nhưng không hieủe sao sang VN mình nó được biến tấu hoặc customize cho dễ hiểu thêm thì phải

Đây là hình 1 ví dụ cho cái Layer này.


Bạn có thể tìm hiểu thêm trên cái link mà mình đưa cho nhé
[url=]Three Layer Architect[/url] Copyright by codeproject.com

Hiện mình đang xây dựng 1 bộ Gen code tự động theo mô hình code này, thực ra là kế thừa từ SmartCode. Bạn nào thích tìm hiểu có thể contact với mình.

Manual hack

http://forum.aspvn.net/tm.aspx?m=528
http://thuvienit.org/forum/forum_posts.asp?TID=5276&title=demos-tat-ca-cac-ham-trong-c.html
http://thuvienit.org/forum/forum_posts.asp?TID=2141&title=code-chong-ddos-don-gian.html
http://thuvienit.org/forum/forum_posts.asp?TID=1001&title=danh-lua-ip-va-cach-phong-chong.html
http://www.guardian.co.uk/world/2008/oct/07/russia1
http://forum.aspvn.net/tm.aspx?m=13502
http://forum.aspvn.net/tm.aspx?m=13404

http://vn.myblog.yahoo.com/thepbac/index?l=f&id=4
http://vn.myblog.yahoo.com/thepbac/article?mid=66
http://vn.myblog.yahoo.com/thepbac/article?mid=65
http://vn.myblog.yahoo.com/thepbac/article?mid=63
http://vn.myblog.yahoo.com/thepbac/article?mid=62
http://www.csharpvn.com/default.aspx?g=posts&m=322#post322