PDA

View Full Version : سوال: جستجوی یک مقدار خاص در کل دیتابیس با کد سی شرپ



sadaf_
شنبه 07 مرداد 1391, 23:15 عصر
سلام
دیتابیس من sql 2005 هستش
می خوام یک مقدار رو بدم و در کل دیتابیس بگردم و ببینم
چه تیبل هایی و چه رکوردهایی این داده را دارند
ممنون

h.rezaee
شنبه 07 مرداد 1391, 23:40 عصر
سلام
دیتابیس من sql 2005 هستش
می خوام یک مقدار رو بدم و در کل دیتابیس بگردم و ببینم
چه تیبل هایی و چه رکوردهایی این داده را دارند
ممنون
دوست عزیز از دستورات دیتا ادپتر استفاده کن.
بعد از ایجاد کانکشن و باز کردن کانکشن مورد نظر شی از نوع دیتا ادپتر درست کن.

SqlDataAdapter objdataadapter = new SqlDataAdapter("SELECT * FROM mainfrm Where txt Like N'%" + textBox1.Text.TrimStart() + "%'", objconnection);

veniz2008
شنبه 07 مرداد 1391, 23:48 عصر
دوست عزیز از دستورات دیتا ادپتر استفاده کن.
بعد از ایجاد کانکشن و باز کردن کانکشن مورد نظر شی از نوع دیتا ادپتر درست کن.

SqlDataAdapter objdataadapter = new SqlDataAdapter("SELECT * FROM mainfrm Where txt Like N'%" + textBox1.Text.TrimStart() + "%'", objconnection);

الان این چیزی که نوشتی کل دیتابیس رو میگرده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟؟؟
یا یک جدول رو جستجو میکنه؟

ali_habibi1384
یک شنبه 08 مرداد 1391, 00:05 صبح
دوست عزیز از دستورات دیتا ادپتر استفاده کن.
بعد از ایجاد کانکشن و باز کردن کانکشن مورد نظر شی از نوع دیتا ادپتر درست کن.

SqlDataAdapter objdataadapter = new SqlDataAdapter("SELECT * FROM mainfrm Where txt Like N'%" + textBox1.Text.TrimStart() + "%'", objconnection);

جاااااااان ما سوالو خوندي؟!!!!!!
ببين اين مرجع انگيليسي بدردت ميخوره؟
مرجع1 (http://www.dzone.com/snippets/find-table-column-sql-server)
مرجع 2 (http://www.codeproject.com/Tips/136463/How-to-search-a-column-name-within-all-tables-of-a)
مرجع3 (http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/)

sadaf_
یک شنبه 08 مرداد 1391, 12:35 عصر
ببين اين مرجع انگيليسي بدردت ميخوره؟
مرجع1 (http://www.dzone.com/snippets/find-table-column-sql-server)
مرجع 2 (http://www.codeproject.com/Tips/136463/How-to-search-a-column-name-within-all-tables-of-a)
مرجع3 (http://blog.sqlauthority.com/2008/08/06/sql-server-query-to-find-column-from-all-tables-of-database/)

در این مثال ها نام فیلد را می گیرد و نام جداول ها را بر می گرداند
من باید یک مقدار از داده هایم را بدم و نام جداولی رو برگردونه که این مقدار ها در اون جدول هستش

sadaf_
یک شنبه 08 مرداد 1391, 14:11 عصر
دوستان خواهشمندم کمکم کنید:ناراحت:

nilmil_nil
یک شنبه 08 مرداد 1391, 15:12 عصر
سلام
به نظر من شما باید ابتدا کل جداول رو از دیتابیست بخونی
بعد از اون بیای و فیلد های هر جدول رو هم بخونی
و حالا یه تابع بنویسی که یکی یکی جداول رو با یه حلقه بخونه و با دستورات Sql ساده مقدار رو توی جدول و فیلد مربوطه جستجو کنه

nilmil_nil
یک شنبه 08 مرداد 1391, 15:15 عصر
دستور SQL برای گرفتن جداول یک دیتابیس

SELECT TABLE_Name FROM INFORMATION_SCHEMA.tables WHERE table_name not like 'sys%' AND TABLE_TYPE='BASE TABLE'"


دستور گرفتن فیلد های یک جدول

SELECT column_Name,Data_type FROM INFORMATION_SCHEMA.columns WHERE table_name = 'نام جدول'

sadaf_
یک شنبه 08 مرداد 1391, 15:19 عصر
دستور SQL برای گرفتن جداول یک دیتابیس

SELECT TABLE_Name FROM INFORMATION_SCHEMA.tables WHERE table_name not like 'sys%' AND TABLE_TYPE='BASE TABLE'"


دستور گرفتن فیلد های یک جدول

SELECT column_Name,Data_type FROM INFORMATION_SCHEMA.columns WHERE table_name = 'نام جدول'


من باید یک مقدار داده ای بدم و نام جدول رو به دست بیارم
مثلا مقدار ali را وارد کنم و حالا اون جداولی که مقدار هایی با عنوان ali دارند را نشان می ده

nilmil_nil
یک شنبه 08 مرداد 1391, 15:44 عصر
من با این کد به جواب رسیدم
شما هم با یه سری تغییرات میتونید به جواب برسید

private void _Sadaf_Function(string Value)
{
DataTable dtTables = new DataTable();
DataTable dtFields = new DataTable();
string strSQLSelect = "";
dtTables = dal.SelectCommand("SELECT TABLE_Name FROM INFORMATION_SCHEMA.tables WHERE table_name not like 'sys%' AND TABLE_TYPE='BASE TABLE'");
for (int i = 0; i < dtTables.Rows.Count; i++)
{
dtFields = dal.SelectCommand(@"SELECT column_Name,Data_type FROM INFORMATION_SCHEMA.columns WHERE Data_type in('nchar','char','nvarchar','varchar') AND table_name = '"
+ dtTables.Rows[i]["Table_Name"].ToString() + "' ");
for (int j = 0; j < dtFields.Rows.Count; j++)
{
strSQLSelect = "Select * From " + dtTables.Rows[i]["Table_Name"].ToString() + " WHERE " + dtFields.Rows[j]["Column_Name"].ToString() + " LIKE '%" + Value + "%'";
DataTable dtt = dal.SelectCommand(strSQLSelect);// برای اجرای دستور SQL من از یه کلاس که خودم نوشتم استفاده میکنم ---- شما این دستور رو خودتون یا دستوراتی که دارین اجرا کنید و نتیجه رو برگردونید
if (dtt.Rows.Count > 0)
listBox1.Items.Add(dtTables.Rows[i]["Table_Name"].ToString());// table name add if value Search is find it
}
}
}