Wednesday, March 16, 2011

Oracle Date insert problem

Recently I was working with Oracle Database and I found that ASP.NET Datetime causes problem as a date parameter in insert query as Oracle only takes the date value as a parameter but ASP.NET passes the Date and the Time both.

So to solve this, as a simple method i used to split the date into string format by space character i.e. (' ')

So you get the first parameter of the string array as date and other two as time.

eg.

string [] _str = Convert.ToString(_date).Split(' ');

string _strQuery = "insert into "+_strTableName+" values ('"+_name+"',"+Convert.ToDouble(_mobileno)+",'"+_company+"','"+_purpose+"','"+_department+"','"+_contactperson+"','"+_city+"','"+_str[0]+"','"+_entryperson+"','"+_exitperson+"','"+_status+"')";

return (ExecuteScalarWithPara(_strQuery));

So its just as simple as that and you are done with this problem

Monday, March 14, 2011

Class to convert Number to Gujarati

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace (Project Name)
{
public class NumberToGujarati
{
public String changeNumericToWords(double numb)
{
String num = numb.ToString();
return changeToWords(num, false);
}
public String changeCurrencyToWords(String numb)
{
return changeToWords(numb, true);
}
public String changeNumericToWords(String numb)
{
return changeToWords(numb, false);
}
public String changeCurrencyToWords(double numb)
{
return changeToWords(numb.ToString(), true);
}
private String changeToWords(String numb, bool isCurrency)
{
String val = "", wholeNo = numb, points = "", andStr = "", pointStr = "";
//String endStr = (isCurrency) ? ("Only") : ("");
String endStr = (isCurrency) ? ("Paura") : ("");
try
{
int decimalPlace = numb.IndexOf(".");
if (decimalPlace > 0)
{
wholeNo = numb.Substring(0, decimalPlace);
points = numb.Substring(decimalPlace + 1);
if (Convert.ToInt32(points) > 0)
{
andStr = (isCurrency) ? ("and") : ("point");// just to separate whole numbers from points/cents
//endStr = (isCurrency) ? ("Cents " + endStr) : ("");
endStr = (isCurrency) ? ("Paisa " + endStr) : ("");
pointStr = translateCents(points);
}
}
val = String.Format("{0} {1}{2} {3}", translateWholeNumber(wholeNo).Trim(), andStr, pointStr, endStr);
}
catch { ;}
return val;
}
private String translateWholeNumber(String number)
{
string word = "";
try
{
bool beginsZero = false;//tests for 0XX
bool isDone = false;//test if already translated
double dblAmt = (Convert.ToDouble(number));
double tm = (Convert.ToDouble(number));
int newnm = 0;
double rm = 0;
string strfst;
string tmpnumber = number.ToString();
//if ((dblAmt > 0) && number.StartsWith("0"))
if (dblAmt > 0)
{//test for zero or digit zero in a nuemric
beginsZero = number.StartsWith("0");

int numDigits = tmpnumber.Length;
int pos = 0;//store digit grouping
String place = "";//digit grouping name:hundres,thousand,etc...
switch (numDigits)
{
case 1://ones' range
word = ones(number);
isDone = true;
break;
case 2://tens' range
word = tens(number);
isDone = true;
break;
case 3://hundreds' range
rm = tm / 100;
newnm = (int)Math.Floor(rm);
pos = (numDigits % 3) + 1;
place = " so ";
//strfst = tmpnumber.Substring(0, pos);
//if (strfst == "2" || strfst == "02")
// place = " bso ";
//else
//if (newnm == 2)
//{
// place = " bso ";
//}
//else
//{
// if (strfst != "0")
// place = " so ";
//}

//if (newnm == 2)
//{
// number = tmpnumber.Substring(pos, tmpnumber.Length - 1);
//}
break;
case 4://thousands' range
case 5:
pos = (numDigits % 4) + 1;
strfst = tmpnumber.Substring(0, pos);
if (strfst != "0" && strfst != "00")
place = " H=r ";
//number = tmpnumber.Substring(pos, tmpnumber.Length - 1);
break;
case 6:
case 7://millions' range
pos = (numDigits % 6) + 1;
place = " Laaq ";
break;
case 8:
case 9:
pos = (numDigits % 8) + 1;
place = " kroD ";
break;
//add extra case options for anything above Billion...
default:
isDone = true;
break;
}
if (!isDone)
{//if transalation is not done, continue...(Recursion comes in now!!)

word = translateWholeNumber(number.Substring(0, pos)) + place + translateWholeNumber(number.Substring(pos));

//check for trailing zeros
//if (beginsZero) word = " and " + word.Trim();
if (beginsZero) word = " " + word.Trim();
}
//ignore digit grouping names
if (word.Trim().Equals(place.Trim())) word = "";
}
}
catch { ;}
return word.Trim();
}
private String tens(String digit)
{
int digt = Convert.ToInt32(digit);
String name = null;
switch (digt)
{
case 10:
name = "ds";//"Ten"
break;
case 11:
name = "Aigyar";//"Eleven"
break;
case 12:
name = "Baar";//"Twelve"
break;
case 13:
name = "Taer";//"Thirteen"
break;
case 14:
name = "CoEad";//"Fourteen"
break;
case 15:
name = "Pa>dr";//"Fifteen"
break;
case 16:
name = "Soa5";//"Sixteen"
break;
case 17:
name = "SaTtr";//"Seventeen"
break;
case 18:
name = "A!ar";//"Eighteen"
break;
case 19:
name = "Aog~aIs";//"Nineteen"
break;
case 20:
name = "vIs";
break;
case 21:
name = "AekvIs";
break;
case 22:
name = "BaavIs";
break;
case 23:
name = "TaevIs";
break;
case 24:
name = "covIs";
break;
case 25:
name = "pCcIs";
break;
case 26:
name = "0vIs";
break;
case 27:
name = "sTtavIs";
break;
case 28:
name = "A#avIs";
break;
case 29:
name = "Aog~at/Is";
break;
case 30:
name = " t/Is";
break;
case 31:
name = "Aet/Is";
break;
case 32:
name = "bt/Is";
break;
case 33:
name = "tet/Is";
break;
case 34:
name = "cot/Is";
break;
case 35:
name = "p>at/Is";
break;
case 36:
name = "0t/Is";
break;
case 37:
name = "Saa\\Dt/Is";
break;
case 38:
name = "AaDt/Is";
break;
case 39:
name = "Aog~acalIs";
break;
case 40:
name = "calIs";
break;
case 41:
name = "AektalIs";
break;
case 42:
name = "betalIs";
break;
case 43:
name = "tetalIs";
break;
case 44:
name = "cu>malIs";
break;
case 45:
name = "ipStalIs";
break;
case 46:
name = "0etalIs";
break;
case 47:
name = "suDtalIs";
break;
case 48:
name = "ADtalIs";
break;
case 49:
name = "Aog`pcas";
break;
case 50:
name = "pcas";
break;
case 51:
name = "Aekavn";
break;
case 52:
name = "Baavn";
break;
case 53:
name = "Taepn";
break;
case 54:
name = "copn";
break;
case 55:
name = "p>cavn";
break;
case 56:
name = "0Ppn";
break;
case 57:
name = "sTtavn";
break;
case 58:
name = "A#avn";
break;
case 59:
name = "Aog~asa[#";
break;
case 60:
name = "sa[#";
break;
case 61:
name = "Aeks#";
break;
case 62:
name = "Baas#";
break;
case 63:
name = "etes#";
break;
case 64:
name = "cos#";
break;
case 65:
name = "pa>s#";
break;
case 66:
name = "0as#";
break;
case 67:
name = "sDs#";
break;
case 68:
name = "ADs#";
break;
case 69:
name = "Ag`oisTter";
break;
case 70:
name = "isTter";
break;
case 71:
name = "{Kotr";
break;
case 72:
name = "Baaeter";
break;
case 73:
name = "Taoter";
break;
case 74:
name = "cumoter";
break;
case 75:
name = "p>coter";
break;
case 76:
name = "0oter";
break;
case 77:
name = "isTyotr";
break;
case 78:
name = "{#yotr";
break;
case 79:
name = "Ag~yaAe>sI";
break;
case 80:
name = "Ae>sI";
break;
case 81:
name = "AekyasI";
break;
case 82:
name = "ByasI";
break;
case 83:
name = "TyasI";
break;
case 84:
name = "coyaRsI";
break;
case 85:
name = "p>casI";
break;
case 86:
name = "0yasI";
break;
case 87:
name = "isTyasI";
break;
case 88:
name = "{#yasI";
break;
case 89:
name = "neVyasI";
break;
case 90:
name = "nev>u";
break;
case 91:
name = "Aeka`u>";
break;
case 92:
name = "Baa`u>";
break;
case 93:
name = "Taa`u>";
break;
case 94:
name = "Caora`u>";
break;
case 95:
name = "p>ca`u>";
break;
case 96:
name = "0Nnu>";
break;
case 97:
name = "sTta`u>";
break;
case 98:
name = "A#a`u>";
break;
case 99:
name = "nVva`u>";
break;

default:
if (digt > 0)
{
name = tens(digit.Substring(0, 1) + "0") + " " + ones(digit.Substring(1));
}
break;
}
return name;
}
private String ones(String digit)
{
int digt = Convert.ToInt32(digit);
String name = "";
switch (digt)
{
case 1:
name = "Aek";//"One"
break;
case 2:
name = "be";//"Two"
break;
case 3:
name = "t/~a";//"Three"
break;
case 4:
name = "Caar";//"Four"
break;
case 5:
name = "Pa>ac";//"Five"
break;
case 6:
name = "0";//"Six"
break;
case 7:
name = "Saat";//"Seven"
break;
case 8:
name = "Aa#";//"Eight"
break;
case 9:
name = "Nav";//"Nine"
break;
}
return name;
}
private String translateCents(String cents)
{
String cts = "", digit = "", engOne = "";
for (int i = 0; i < cents.Length; i++)
{
digit = cents[i].ToString();
if (digit.Equals("0"))
{
//engOne = "";
}
else
{
engOne = ones(digit);
}
cts += " " + engOne;
}
return cts;
}
}
}

Class to convert Number to English word

----Number to English class


using System;
namespace (Project Name)
{
public class NumberToEnglish
{
public String changeNumericToWords(double numb)
{
String num = numb.ToString();
return changeToWords(num, false);
}
public String changeCurrencyToWords(String numb)
{
return changeToWords(numb, true);
}
public String changeNumericToWords(String numb)
{
return changeToWords(numb, false);
}
public String changeCurrencyToWords(double numb)
{
return changeToWords(numb.ToString(), true);
}
private String changeToWords(String numb, bool isCurrency)
{
String val = "", wholeNo = numb, points = "", andStr = "", pointStr = "";
String endStr = (isCurrency) ? ("Only") : ("");
try
{
int decimalPlace = numb.IndexOf(".");
if (decimalPlace > 0)
{
wholeNo = numb.Substring(0, decimalPlace);
points = numb.Substring(decimalPlace + 1);
if (Convert.ToInt32(points) > 0)
{
andStr = (isCurrency) ? ("and") : ("Rupees And");// just to separate whole numbers from points/cents
//endStr = (isCurrency) ? ("Cents " + endStr) : ("");
endStr = (isCurrency) ? ("Paisa " + endStr) : ("");
pointStr = translateCents(points) + " Paisa";
}
}
val = String.Format("{0} {1}{2} {3}", translateWholeNumber(wholeNo).Trim(), andStr, pointStr, endStr);
}
catch { ;}
return val;
}
private String translateWholeNumber(String number)
{
string word = "";
try
{
bool beginsZero = false;//tests for 0XX
bool isDone = false;//test if already translated
double dblAmt = (Convert.ToDouble(number));
//if ((dblAmt > 0) && number.StartsWith("0"))
if (dblAmt > 0)
{//test for zero or digit zero in a nuemric
beginsZero = number.StartsWith("0");

int numDigits = number.Length;
int pos = 0;//store digit grouping
String place = "";//digit grouping name:hundres,thousand,etc...
switch (numDigits)
{
case 1://ones' range
word = ones(number);
isDone = true;
break;
case 2://tens' range
word = tens(number);
isDone = true;
break;
case 3://hundreds' range
pos = (numDigits % 3) + 1;
place = " Hundred ";
break;
case 4://thousands' range
case 5:
case 6:
pos = (numDigits % 4) + 1;
place = " Thousand ";
break;
case 7://millions' range
case 8:
case 9:
pos = (numDigits % 7) + 1;
place = " Million ";
break;
case 10://Billions's range
pos = (numDigits % 10) + 1;
place = " Billion ";
break;
//add extra case options for anything above Billion...
default:
isDone = true;
break;
}
if (!isDone)
{//if transalation is not done, continue...(Recursion comes in now!!)
word = translateWholeNumber(number.Substring(0, pos)) + place + translateWholeNumber(number.Substring(pos));
//check for trailing zeros
if (beginsZero) word = " and " + word.Trim();
}
//ignore digit grouping names
if (word.Trim().Equals(place.Trim())) word = "";
}
}
catch { ;}
return word.Trim();
}
private String tens(String digit)
{
int digt = Convert.ToInt32(digit);
String name = null;
switch (digt)
{
case 10:
name = "Ten";
break;
case 11:
name = "Eleven";
break;
case 12:
name = "Twelve";
break;
case 13:
name = "Thirteen";
break;
case 14:
name = "Fourteen";
break;
case 15:
name = "Fifteen";
break;
case 16:
name = "Sixteen";
break;
case 17:
name = "Seventeen";
break;
case 18:
name = "Eighteen";
break;
case 19:
name = "Nineteen";
break;
case 20:
name = "Twenty";
break;
case 30:
name = "Thirty";
break;
case 40:
name = "Fourty";
break;
case 50:
name = "Fifty";
break;
case 60:
name = "Sixty";
break;
case 70:
name = "Seventy";
break;
case 80:
name = "Eighty";
break;
case 90:
name = "Ninety";
break;
default:
if (digt > 0)
{
name = tens(digit.Substring(0, 1) + "0") + " " + ones(digit.Substring(1));
}
break;
}
return name;
}
private String ones(String digit)
{
int digt = Convert.ToInt32(digit);
String name = "";
switch (digt)
{
case 1:
name = "One";
break;
case 2:
name = "Two";
break;
case 3:
name = "Three";
break;
case 4:
name = "Four";
break;
case 5:
name = "Five";
break;
case 6:
name = "Six";
break;
case 7:
name = "Seven";
break;
case 8:
name = "Eight";
break;
case 9:
name = "Nine";
break;
}
return name;
}
private String translateCents(String cents)
{
String cts = "", digit = "", engOne = "";
for (int i = 0; i <>
{
digit = cents[i].ToString();
if (digit.Equals("0"))
{
engOne = "Zero";
}
else
{
engOne = ones(digit);
}
cts += " " + engOne;
}
return cts;
}
}
}

Printing using C#, Windows Application

A PrintDialog control is used to open the Windows Print Dialog and let user select the printer, set printer and paper properties and print a file. A typical Open File Dialog looks like Figure 1 where you select a printer from available printers, set printer properties, set print range, number of pages and copies and so on. Clicking on OK button sends the document to the printer.






Creating a PrintDialog

We can create a PrintDialog at design-time as well as at run-time.

Design-time

To create a PrintDialog control at design-time, you simply drag and drop a PrintDialog control from Toolbox to a Form in Visual Studio. After you drag and drop a PrintDialog on a Form, the PrintDialog looks like Figure 2.

PrintDlgImg2.jpg
Figure 2

Run-time

Creating a PrintDialog control at run-time is simple. First step is to create an instance of PrintDialog class and then call the ShowDialog method. The following code snippet creates a PrintDialog control.

PrintDialog PrintDialog1 = new PrintDialog();

PrintDialog1.ShowDialog();


Printing Documents


PrintDocument object represents a document to be printed. Once a PrintDocument is created, we can set the Document property of PrintDialog as this document. After that we can also set other properties. The following code snippet creates a PrintDialog and sends some text to a printer.


private void PrintButton_Click(object sender, EventArgs e)

{

PrintDialog printDlg = new PrintDialog();

PrintDocument printDoc = new PrintDocument();

printDoc.DocumentName = "Print Document";

printDlg.Document = printDoc;

printDlg.AllowSelection = true;

printDlg.AllowSomePages = true;

//Call ShowDialog

if (printDlg.ShowDialog() == DialogResult.OK)

printDoc.Print();

}


Summary

A PrintDialog control allows users to launch Windows Open File Dialog and let them select files. In this article, we discussed how to use a Windows Open File Dialog and set its properties in a Windows Forms application.