(25-01-21, 03:08 PM)faresvip كتب :السلام عليكم ورحمة الله وبركاتة
كما فى العنوانعاوز طريقة عمل عداد مستخدمي البرنامج الان
عملت بحث فى الموقع بس الطريقة الى موجوده منفعتش
انا قدرت اعمل فكرة بس محتاجه شوية تعديلات
عملت قاعدة بيانات فيها
MyID
MyUSERS
G-DATEالـ MyUSERS باخد رقم الهارد ويستجل فى القاعدةوفى الاخر عامل Label يعرض عدد الاجهزه الى فى القاعدةالمشكلة بقي دلوقتي
انا فى الفورم لود عامل التاليكود :
foreach (string cpu in GetComponents("Win32_DiskDrive", "SerialNumber"))
{
TextBox1.AppendText(cpu);
}
عشان يجيب البيانات داخل ال TextBox1وبعدين
بيتم تسجيل بيانات الجهاز الجديد فى القاعدةبالشكل التالي
كود :
if (TextBox1.Text==TextBox1.Text)
{
connection.Open();
string query = "INSERT INTO `VUsers` (`MyUSERS`, `G-DATE`) VALUES ('" + TextBox1.Text + "','" + GetDateAndTime() + "' )";
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.ExecuteNonQuery();
connection.Close();
}وبعدين يتم عرض البيانات الى فى القاعدة فى lLabel1بالشكل التالي
كود :
var mySqlCommand = new MySqlCommand("SELECT * FROM `keys` WHERE `key`", connection);
var mySqlDataAdapter = new MySqlDataAdapter(mySqlCommand);
var dataTable = new DataTable();
mySqlDataAdapter.Fill(dataTable);
var dateAndTime = GetDateAndTime();
bool flag2 = dataTable.Rows.Count == 0;
if (flag2)
{
var mySqlCommand2 = new MySqlCommand("SELECT * FROM `VUsers` ORDER BY `VUsers`.`MyID` DESC", connection);
var mySqlDataAdapter2 = new MySqlDataAdapter(mySqlCommand2);
var dataTable2 = new DataTable();
mySqlDataAdapter2.Fill(dataTable2);
txtMac.DataBindings.Clear();
txtMac.DataBindings.Add("Text", dataTable2, "MyUSERS");
txtType.DataBindings.Clear();
txtType.DataBindings.Add("Text", dataTable2, "MyID");
bool flag3 = dataTable2.Rows.Count == 0;
}دلوقتي انا ناقص لي حجتيناولا يتم تحديث البيانات فى lLabel1 الى هيعرض عدد الاشخاص الى فتحين اونلاينثانيا لما حد يقفل البرنامج يتمسح البيانات بتاعت الشخص ده ويتحدث lLabel1
انا الى قدرت اعملبس المشكلةكود :
connection.Open();
string query1 = "DELETE FROM `VUsers` WHERE `VUsers`.`MyID` = '" + txtType.Text + "'";
MySqlCommand cmd1 = new MySqlCommand(query1, connection);
cmd1.ExecuteNonQuery();
connection.Close();اولا بيتم عرض عدد الاجهزه الى اضيفت فى القاعدة حتي لو تم مسح البيانات بيفضل يعرض اخر رقم اضافة يعني لو ضفنا 5 اجهزه وبعدين مسحناهم وضفنا جهاز جديد ال ـ lLabel1 بيعرض 6 مش 1 يعني من الاخر ال lLabel1 مش بيتحدث باخر بيانات موجوده
اتمنا تكون الفكرة واضحهوانا كتبت الكود عشان لو حد عاوز يستفيد من الكود
ينقص MyID في بيانات التسجيل INSERT
كود :
string query = "INSERT INTO `VUsers` (`MyID`, `MyUSERS`, `G-DATE`) VALUES ('" + txtType.Text + "','" + TextBox1.Text + "','" + GetDateAndTime() + "' )";