View Full Version : مبتدی: دسترسی به دیتابیس روی هاست از طریق یک برنامه ی Application
Bahar_HS
دوشنبه 16 اسفند 1389, 23:17 عصر
با سلام
نمی دونستم باید این سوال رو در بخش C# مطرح کنم با اینجا؟
فکر کردم بهتره اینجا سوالم رو مطرح کنم،
من چند روزیه که دارم search می کنم ولی چون با این بخش ( C#(System.netآشنایی ندارم نتونستم کارم رو پیش ببرم ، بیشتر می خوام راهنمایی م کنید،سرنخی، که چطور کاری رو که می خوام انجام بدم:
می خوام از برنامه ی Application که با C# نوشتم به دیتابیس روی هاست متصل شم،و User و Password رو که کاربر وارد کرده رو چک کنم ،اگر سیستم کاربر کانکت نبود پیام عدم اتصال داده میشه و کاربر نمی تونه به مرحله ی بعد برنامه بره(کاربرقبلا این User_Passرو خریده)واگر سیستمش کانکت بود User_Pass چک می شن و اگر درست بود می تونه وارد برنامه بشه،
اون طور که تا اینجا متوجه شدم باید از دستورات زیر استفاده کنم،ولی می دونم که کامل نیستند.
با سپاس از راهنمایی تون
HttpWebRequest req = (HttpWebRequest) WebRequest.Create("http://www.microsoft.com");
HttpWebResponse resp = (HttpWebResponse) req.GetResponse();
Stream s = resp.GetResponseStream();
jafar53
سه شنبه 17 اسفند 1389, 01:27 صبح
من نمی دونم منظور شما رو درست متوجه شدم یا نه ولی اگر DataBase شما با SQL مدیریت می شه باید یه صفحه log in طراحی کنید که با یه کانکشن بهش وصل بشه و با یه query جستو جو user name و password رو با آنچه کاربر نوشته چک کنه و اگر هم کانکشن برقرار نشه جواب درست بده به هر حال ببخشید خلاصه می نویسم چون الان ساعت 1.5شب هست و خوابم می یاد به هر حال کد یکی از برنامه هام که بخش log in اون هست رو می ذارم امیدوارم که به درد بخوره فقط در قسمت کانکشن اونجایی که دارم آدرس می دم در Data source به جای نقطه شما باید ip هاست رو وارد کنید
672256722667227
Bahar_HS
سه شنبه 17 اسفند 1389, 11:16 صبح
ممنون از راهنمایی تون،
کدی که قرار دارید مشابه با حالتیه که دیتابیس Local است،ولی قراره کاربر به اینترنت وصل باشه و در صورت اتصال به اینترنت ، User_Pass وارد شده با دیتابیس روی هاست مقایسه بشه،Query چک کردن User_Pass مشابه همون حالت معمول است،اما کانکت بودن یا نبودن سیستم کاربر رو چطور باید چک کرد؟یا ممکنه مثلا آدرس دهی سایت یا هاست اشکال داشته باشه یا مثلا سایت Expaier شده باشه ، من می خوام حالات مختلف رو در برنامه داشته باشم و به کاربر
پیام مناسب رو بدم،برنامه ای که دارم روش کار می کنم یه برنامه ی Application است و در مراحلی از برنامه باید سیستم کاربر به اینترنت کانکت باشه و با هاستمون در ارتباط،
بازهم ممنون از راهنمایی تون،
امیدوارم توضیحاتم روشن بوده باشه،(کمی طولانی شد)
در نمونه برنامه هایی که دیدم مسائلی مثل Port,Proxy و... مطرح شده بود ، پرداختن به این مطالب لازمه؟
مهمترین چیزی که فعلا می خوام چک بودن کانکت بودن یا نبودن سیستم کاربر ودر صورت اتصال به اینترنت از طریق برنامه ی Application که روی سیستم کاربر نصبه به هاست وصل بشیم وحالا Query چک کردن User_Pass رو انجام بدیم.
بازهم سپاسگزارم
jafar53
چهارشنبه 18 اسفند 1389, 20:32 عصر
خواهش می کنم من که کاری نکردم
این طور که من از فرمایشتون متوجه شدم شما برنامه ای رو می خواهید که مشخص کنه الان به اینترنت متصل هستید یانه یا اینکه اصلا به هاستتون متصل هستید یانه این مقوله مربوط به Socket programming می شه
ما تو شبکه برای مشخص کردن کانکت بودن به اینترنت یه DNs خارجی رو ping می کنیم
حالا اگه بخواهیم یه برنامه بنویسیم که مشخص کنه به اینترنت متصل هستیم یا نه باید برنامه ping رو بنویسیم
من امروز این برنامه رو نوشتم شما می تونید با تغیر اون هرجایی که بخواهید از اون استفاده کنید به قل شبکه کارا consept رو که بلد باشی کار حله
تو این برنامه اگه شما می خواهید کانکت بودن به هاستتون رو بسنجید تنها کافیه به جای 4.2.2.4که آدرس Dns هست ادرس هاستتون رو قرار بدین
امیدوارم این بار منظورتون رو درست متوجه شده باشم
Bahar_HS
جمعه 20 اسفند 1389, 12:12 عصر
سلام
باز هم ممنون،
راستش از چیزهایی که گفتید سر در نیووردم!:متفکر:
ولی بالاخره کد مورد نظرم رو پیدا کردم،کلاسشو می ذارم اینجا شاید به کار بیاد،از شما و راهنمایی هاتون هم سپاسگزارم. :تشویق:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.IO;
using System.Runtime;
using System.Runtime.InteropServices;
namespace S2
{
class ConnectToHost
{
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
//Creating a Function that uses the "API" Function...
public static bool IsConnectedToInternet()
{
int Desc;
return InternetGetConnectedState(out Desc, 0);
}
public static bool IsConnectedToHost()
{
System.Uri Url = new System.Uri("http://www.************.com (http://www.************.com/)");
System.Net.WebRequest WebReq;
System.Net.WebResponse Resp;
WebReq = System.Net.WebRequest.Create(Url);
try
{
Resp = WebReq.GetResponse();
Resp.Close();
WebReq = null;
return true;
}
catch
{
WebReq = null;
return false;
}
}
public static int CheckUserPass(string UserName, string Password)
{
OleDbConnection Objconnection = new OleDbConnection();
Objconnection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\s.mdb;Jet (file://\\s.mdb;Jet) OLEDB:Database Password=pardaz;";
//\\
try
{
Objconnection.Open();
}
catch
{
return -1;
}
//\\
OleDbCommand Query = new System.Data.OleDb.OleDbCommand();
Query.Connection = Objconnection;
Query.CommandText = "SELECT username FROM ManagerInfo WHERE (username LIKE '" + UserName + "') AND (password LIKE '" + Password + "')";
//\\
int i = 0;
try
{
if (!(Query.ExecuteScalar() is DBNull))
i = 1;
}
catch
{
i = -2;
}
return i;
}
}
}
imanamami
جمعه 13 خرداد 1390, 17:04 عصر
دوست عزیز Bahar_HS نا خواسته یکی از بزرگترین مشکلات بنده را شما حل کردید.البته مشکل من در حین پساخگویی به جوابی که داده بودید حل شده و اصلا ربطی یه این موضوعات نداره.خیلی خوشحالم فقت گفتم بنویسیم :قهقهه::گیج::قهقهه::گیج::قهقه ::گیج::قهقهه::گیج::قهقهه::گیج:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.