This blog defines SQL Injection in Windows Forms Application.

using System;

using System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.Data;
using
System.Data.SqlClient;
using
Microsoft.Data.Schema.ScriptDom;
using
Microsoft.Data.Schema.ScriptDom.Sql;
using
System.IO;

namespace
WindowsFormsApplication1
{

public partial class Form1 :
Form

{

public Form1()

{

InitializeComponent();

}

SqlConnection con = new SqlConnection(@"connectionstring");

SqlCommand cmd = new SqlCommand();
private void Form1_Load(object sender, EventArgs e)

{

DataTable dt = new System.Data.DataTable();

cmd.Connection = con;

cmd.CommandText = "select LastName,FirstName,Title,City from dbo.Employees";

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);

dtgsearchitem.DataSource = dt;

}

private void btnsearch_Click(object sender, EventArgs e)

{

bool result = validatextbox();

if (result == true)
{

String str = txtsearchitem.Text.Replace("--", " ");
str = str.Replace("/*", " ");

str = str.Replace("*/", " ");
str = str.Replace("XP_", " ");

str = str.Trim().Replace("'", "''");

DataTable dt = new System.Data.DataTable();

cmd.Parameters.Clear();
cmd.CommandText = "searchwindowselect";

cmd.CommandType = CommandType.StoredProcedure;

SqlParameter param1 = new SqlParameter("@SEARCHITEM", SqlDbType.VarChar, 100);

param1.Value = str;

cmd.Parameters.Add(param1);

SqlParameter param2 = new SqlParameter("@CONDTION", SqlDbType.VarChar, 20);

param2.Value = cmbCondition.Text.Trim();
cmd.Parameters.Add(param2);

SqlParameter param3 = new SqlParameter("@SEARCHCONDITION", SqlDbType.VarChar, 20);
param3.Value = cmbsearchcondion.Text.Trim();

cmd.Parameters.Add(param3);

SqlDataAdapter da = new SqlDataAdapter(cmd);

da.Fill(dt);
dtgsearchitem.DataSource = dt;

}

else

{

MessageBox.Show("Invalid search item");

}

}

private String removeUnknownCharecter(String str)

{

string[] words = str.Split('-');

str.Replace("-", " ");

str.Replace("-", " ");

return str;

}

private bool validatextbox()

{

int f = 1;

String str = txtsearchitem.Text;
string[] words = str.Split(';');

foreach (string word in words)

{

string sql = word;

var p = new TSql100Parser(true);

IList<ParseError> errors;

p.ParseStatementList(new StringReader(sql), out errors);

if (errors.Count == 0)

{

f = 0;

break;

}

}

if (f == 0)

{

return false;

}

else

{

return true;

}

}

}

}