PDA

View Full Version : سوال: اشکال در جستجور اطلاعات



davidrobert
پنج شنبه 22 فروردین 1392, 20:44 عصر
سلام خسته نباشید من میخواستم جستجور اطلاعات کنم بر حسب گروه بندی کامبوباکس اگه شماره سند رو انتخاب کرد در کامبو باکس و شماره سند رو داد اطلاعات شماره سند رو بیاره در دیتا گرید اگه شماره فاکتور رو انتخاب کرد در کامبوباکس و تکس باکس 1 شماره فاکتور رو نوشت اطلاعات مربوط به شماره فاکتور رو بیاره دیتاگرید اینک کد هام ولی اجرا نمیکنه وقتی شماره سند رو میزنم اصلا هیچ چیزی نمیگرده نمی دانم اشکال کار چی هستش از یه پروژه استفاده کردم اینم کد هاش هستش و یه چیزی تو کدس از t1 استفاده کرده نمیدونم چی هستش. ممنون میشم به هم بگید و همه دستورات رو داخل فرم نوشتم
//دستوورات مربوط به جستجور
SqlConnection conff = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshak.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmdff = new SqlCommand();
SqlDataAdapter daff = new SqlDataAdapter();
DataSet dsff = new DataSet();

//کد مربوط به جستجور
void search()
{
string querys = null;
try
{
switch (cmbfind.Text)
{
case "شماره سند": { querys = "SELECT * from TblDocAndNum WHERE DN_Doc LIKE '" + txtsearch.Text + "%'"; break; }
case "شماره فاکتور": { querys = "SELECT * from TblDocAndNum WHERE DN_Num LIKE '" + txtsearch.Text + "%'"; break; }
default: { break; }
}
cmdff.CommandText = querys;
conff.Open();
cmdff.ExecuteNonQuery();
conff.Close();
cmdff.CommandText = querys;
daff.SelectCommand = cmdff;
dsff.Clear();
daff.Fill(dsff,"t1");
dataGridView1.DataSource = dsff.Tables[0];
}
catch
{

}
private void txtsearch_TextChanged(object sender, EventArgs e)
{
search();
}

aliasghar2
پنج شنبه 22 فروردین 1392, 20:49 عصر
یه سوال شماره سند و شماره فاکتور عدد هستند یا رشته

davidrobert
پنج شنبه 22 فروردین 1392, 21:02 عصر
شماره فاکتور و سند من عدد هستن هر دوشون

aliasghar2
پنج شنبه 22 فروردین 1392, 21:12 عصر
خب تا اونجا که من می دونم like مال رشته هاست برای عدد ها باید فیلدت رو به رشته تبدیل کنی

SELECT * from TblDocAndNum WHERE CONVERT(varchar,DN_Doc) LIKE '%123%'

davidrobert
پنج شنبه 22 فروردین 1392, 22:30 عصر
سلام من استفاده کردم از این دستور ولی هیچ عملی برای پیدا کردن ندیدم وقتی عدد یک رو دادم اصلا دیتاگرید من تکون نخورد که عدد یک رو نشون بده اینم دستور

case "شماره سند": { querys = "SELECT * from TblDocAndNum WHERE CONVERT(varchar,DN_Doc) LIKE '%123%'" + txtsearch.Text + "%'"; break; }

aliasghar2
پنج شنبه 22 فروردین 1392, 23:04 عصر
دوست عزیر چرا کد رو همونجوری گذاشتی اخه
باید قسمت مقدار دهی شو عوض می کردی اینجوری

case "شماره سند": { querys = "SELECT * from TblDocAndNum WHERE CONVERT(varchar,DN_Doc) LIKE '%" + txtsearch.Text + "%'"; break; }


اینو تست کن

davidrobert
پنج شنبه 22 فروردین 1392, 23:19 عصر
برادر این رو هم تست کردم ولی جوابی نگرفتم

aliasghar2
پنج شنبه 22 فروردین 1392, 23:23 عصر
اگه امکانش هست فرمت رو بذار تا ببینیم مشکل چیه
البته قبلش try catch رو بردار شاید یجایی داره ارور میده

davidrobert
پنج شنبه 22 فروردین 1392, 23:37 عصر
من try catch وروداشتم حالا کل برنامه داره خطا میده و مجبور شدم دوباره قرار بدم چون try catch رو ورداشتم همه دستورات void رو خطا دادن من کل کد رو قرار میدم برای شما از فرم که داخل فرم همه کد ها رو نشوتم
ممنون میشم ببنید خطا من چی هستش از پروژی این رو ورداشتم و مثل همون هم نوشتم تو پروژه انجام شود بدون خطا ولی تو این نمیدونم چرا انجام نمیشه
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.SqlClient;
using System.Runtime.InteropServices;
namespace Project_Poshak
{
public partial class FrmListDocAndNum : Form
{
public delegate void dgwRowHandler(DataGridViewRow dtgvr);
public event dgwRowHandler OnNewRow;

public FrmListDocAndNum()
{
InitializeComponent();
this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler( this.dataGridView1_CellClick);
}
//دستوورات مربوط به جستجور
SqlConnection conff = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshak.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmdff = new SqlCommand();
SqlDataAdapter daff = new SqlDataAdapter();
DataSet dsff = new DataSet();



public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
//دستورات مربوط به شمار سند و فاکتور
String connect = (@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DbPoshak.mdf;Integrated Security=True;User Instance=True");
SqlConnection con;
SqlCommand command;
SqlDataAdapter adapter;
DataTable objDatatTable;
//string mNAME = "";
private void load()
{
try
{
con=new SqlConnection(connect);
con.Open();
string query="SELECT TblDocAndNum.DN_ID, TblDocAndNum.DN_Doc, TblDocAndNum.DN_Num FROM TblDocAndNum ORDER BY TblDocAndNum.DN_ID DESC";
command = new SqlCommand();
command.CommandText = query;
command.Connection = con;
adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
objDatatTable = new DataTable();
adapter.Fill(objDatatTable);
con.Close();
dataGridView1.DataSource = objDatatTable;
}
catch
{
FMessegeBox.FarsiMessegeBox.Show("سیستم به بانک اطلاعات وصل نشده است / با مدیر تماس بگرید / خطا100 ");
}
}
//کد مربوط به جستجور
void search()
{
string querys = null;
try
{
switch (cmbfind.Text)
{
case "شماره سند": { querys = "SELECT * from TblDocAndNum WHERE CONVERT(varchar,DN_Doc) LIKE '%" + txtsearch.Text + "%'"; break; }
case "شماره فاکتور": { querys = "select * from TblDocAndnum where CONVERT(VARCHAR,DN_Num) LIKE '%" + txtsearch.Text + "%'"; break; }
default: { break; }
}
cmdff.CommandText = querys;
conff.Open();
cmdff.ExecuteNonQuery();
conff.Close();
cmdff.CommandText = querys;
daff.SelectCommand = cmdff;
dsff.Clear();
daff.Fill(dsff,"t1");
dataGridView1.DataSource = dsff.Tables[0];
}
catch
{

}
}
private void PicExit_Click(object sender, EventArgs e)
{
this.Close();
}

private void FrmListDocAndNum_Load(object sender, EventArgs e)
{
DataBaseFrmListDocAndNum db = new DataBaseFrmListDocAndNum();
TxtDoc.Text = "";
int NewId = 1;
string strnewid = " ";
object obj = db.newid();
if (obj.ToString() != "")
{
NewId = Convert.ToInt32(obj.ToString()) + 1;
strnewid = NewId.ToString();
strnewid = strnewid.PadLeft(1, '0');
TxtDoc.Text = strnewid;
}
else
{
TxtDoc.Text = "0";
}
load();
TxtNum.Text = (Convert.ToInt32(TxtDoc.Text) + 1000).ToString();
//int ftb;
//int stb;
//int result;
//ftb = int.Parse(textBox1.Text);
//stb = int.Parse(textBox2.Text);
//result = ftb * stb;
//label1.Text = result.ToString();
//textBox1.Focus();

}

private void PicMin_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (OnNewRow != null)
OnNewRow(dataGridView1.CurrentRow);
}

private void PicNew_Click(object sender, EventArgs e)
{
try
{
con.Open();
SqlCommand command = new SqlCommand("insert into TblDocAndNum(DN_Doc,DN_Num)values(@DN_Doc,@DN_Num)", con);
command.Parameters.AddWithValue("@DN_Doc", Int32.Parse(TxtDoc.Text));
command.Parameters.AddWithValue("@DN_Num", Int32.Parse(TxtNum.Text));
command.ExecuteNonQuery();
load();
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
FMessegeBox.FarsiMessegeBox.Show("این شماره سند در بانک اطلاعات موجود می باشد");
}
}
finally
{
if (con.State != ConnectionState.Closed)
{
con.Close();
}
}
DataBaseFrmListDocAndNum db = new DataBaseFrmListDocAndNum();
TxtDoc.Text = "";
int NewId = 1;
string strnewid = " ";
object obj = db.newid();
if (obj.ToString() != "")
{
NewId = Convert.ToInt32(obj.ToString()) + 1;
strnewid = NewId.ToString();
strnewid = strnewid.PadLeft(1, '0');
TxtDoc.Text = strnewid;
}
else
{
TxtDoc.Text = "0";
}
TxtNum.Text = (Convert.ToInt32(TxtDoc.Text) + 1000).ToString();
}

private void dataGridView1_MouseUp(object sender, MouseEventArgs e)
{
//TxtDoc.Text = dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString();
//TxtNum.Text = dataGridView1[2, dataGridView1.CurrentRow.Index].Value.ToString();
}

private void بستنToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}

private void ذخیرهToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
con.Open();
SqlCommand command = new SqlCommand("insert into TblDocAndNum(DN_Doc,DN_Num)values(@DN_Doc,@DN_Num)", con);
command.Parameters.AddWithValue("@DN_Doc", Int32.Parse(TxtDoc.Text));
command.Parameters.AddWithValue("@DN_Num", Int32.Parse(TxtNum.Text));
command.ExecuteNonQuery();
load();
}
catch (SqlException ex)
{
if (ex.Number == 2627)
{
FMessegeBox.FarsiMessegeBox.Show("این شماره سند در بانک اطلاعات موجود می باشد");
}
}
finally
{
if (con.State != ConnectionState.Closed)
{
con.Close();
}
}
DataBaseFrmListDocAndNum db = new DataBaseFrmListDocAndNum();
TxtDoc.Text = "";
int NewId = 1;
string strnewid = " ";
object obj = db.newid();
if (obj.ToString() != "")
{
NewId = Convert.ToInt32(obj.ToString()) + 1;
strnewid = NewId.ToString();
strnewid = strnewid.PadLeft(1, '0');
TxtDoc.Text = strnewid;
}
else
{
TxtDoc.Text = "0";
}
}

private void PicExit_MouseHover(object sender, EventArgs e)
{
PicExit.BackColor = Color.PaleVioletRed;
toolTip1.SetToolTip(PicExit, "خروج از شماره ثبت فاکتور");
}

private void PicExit_MouseLeave(object sender, EventArgs e)
{
PicExit.BackColor = Color.Transparent;
}

private void PicMin_MouseHover(object sender, EventArgs e)
{
PicMin.BackColor = Color.PaleVioletRed;
toolTip1.SetToolTip(PicMin, "کمینه کردن");
}

private void PicNew_MouseHover(object sender, EventArgs e)
{
PicNew.BackColor = Color.GhostWhite;
toolTip1.SetToolTip(PicNew, "ثبت شماره فاکتور و سند");
}

private void PicNew_MouseLeave(object sender, EventArgs e)
{
PicNew.BackColor = Color.Transparent;
}

private void PicMin_MouseLeave(object sender, EventArgs e)
{
PicMin.BackColor = Color.Transparent;
}

private void panel1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.Handle, 0xa1, 0x2, 0);
}
}

private void panel3_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.Handle, 0xa1, 0x2, 0);
}
}

private void panel4_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(this.Handle, 0xa1, 0x2, 0);
}
}

private void panel2_Paint(object sender, PaintEventArgs e)
{

}

private void txtsearch_TextChanged(object sender, EventArgs e)
{
search();
//string querys = null;
//try
//{
// switch (cmbfind.Text)
// {
// case "شماره سند": { querys = "SELECT * from TblDocAndNum WHERE CONVERT(varchar,DN_Doc) LIKE '%" + txtsearch.Text + "%'"; break; }
// case "شماره فاکتور": { querys = "select * from TblDocAndnum where CONVERT(VARCHAR,DN_Num) LIKE '%" + txtsearch.Text + "%'"; break; }
// default: { break; }
// }
// cmdff.CommandText = querys;
// conff.Open();
// cmdff.ExecuteNonQuery();
// conff.Close();
// cmdff.CommandText = querys;
// daff.SelectCommand = cmdff;
// dsff.Clear();
// daff.Fill(dsff, "t1");
// dataGridView1.DataSource = dsff.Tables[0];
//}
//catch
//{

//}
}
}
}

aliasghar2
جمعه 23 فروردین 1392, 00:58 صبح
سلام دوباره

کدهارو جک کردم تنها مشکل اینجا بود که مقدار cmdff.Connectionرو ست نکرده بودی

این خط رو به متد search قبل از cnnff.opent اضافه کن درست میشه
cmdff.Connection=cnnff

davidrobert
جمعه 23 فروردین 1392, 09:24 صبح
قربون دستت جواب گرفتم خدا خیریت بده داداش