PDA

View Full Version : گرفتن دسترسی از کاربر در فرمهای تودر تو



nemann
چهارشنبه 10 مهر 1398, 11:21 صبح
با سلام
من ی فرم دارم که توش ی دکمه داره که لینک میکنه به ی فرم دوم
توی فرم اول و دوم دیتاگریو ویو دارم
اجازه دسترسی به کاربرا میتونم بدم که تو فرم اول نتونن اضافه کنن یا ثبت کنن ولی نمیتونم اجازه فرم دومو ازشون بگیرم که تو دیتا گرید فرم دوم نتونن چیزیاضافه کنن یا ثبت کنن
میخوام در زمان لاگین این کار بشه
لطفا راهنماییم کنید ممنون

ASHKANLAEI
چهارشنبه 10 مهر 1398, 13:19 عصر
با سلام کدتون رو قرار بدهید

nemann
چهارشنبه 10 مهر 1398, 13:28 عصر
این کد لاگین

private void Btnlogin_Click(object sender, EventArgs e)
{

SqlConnection consql = new SqlConnection(con);
string query = "select * from Tbluser where Username = '"+Txtusename.Text+"' and PassWord='"+Txtpassword.Text+"' ";

SqlDataAdapter dtasql = new SqlDataAdapter(query,consql);
DataTable dt = new DataTable();
dtasql.Fill(dt);





if (dt.Rows.Count == 1 )
{
string ratee = dt.Rows[0][4].ToString();
if (ratee == "ارشد" || ratee == "مدیر")
{



Frmrecdata f = new Frmrecdata();


f.ShowDialog();


}
else if (dt.Rows.Count == 1 && ratee == "عادی")
{

DialogResult = DialogResult.No;


Frmrecdata f = new Frmrecdata();
f.dgrecoutpout.ReadOnly = true;
f.btnrecdateadd.Visible = false;
f.btnrecdatedel.Visible = false;
f.btnrecdatesave.Visible = false;

f.ShowDialog();





}

ASHKANLAEI
چهارشنبه 10 مهر 1398, 13:45 عصر
من مشکلی در این کد ندیدم. البته کمی ساده سازیش کردم:
private void Btnlogin_Click(object sender, EventArgs e) {
SqlConnection consql = new SqlConnection(con);

string query = $"select * from Tbluser where Username = '{Txtusename.Text}' and PassWord='{Txtpassword.Text}' ";
SqlDataAdapter dtasql = new SqlDataAdapter(query,consql);
DataTable dt = new DataTable();
dtasql.Fill(dt);

if (dt.Rows.Count != 1 ) return;

string ratee = dt.Rows[0][4].ToString();

Frmrecdata f = new Frmrecdata();

if (ratee == "عادی") {
DialogResult = DialogResult.No;

f.dgrecoutpout.ReadOnly = true;
f.btnrecdateadd.Visible = false;
f.btnrecdatedel.Visible = false;
f.btnrecdatesave.Visible = false;
}

f.ShowDialog();
}

nemann
چهارشنبه 10 مهر 1398, 13:53 عصر
این کد لاگین

private void Btnlogin_Click(object sender, EventArgs e)
{

SqlConnection consql = new SqlConnection(con);
string query = "select * from Tbluser where Username = '"+Txtusename.Text+"' and PassWord='"+Txtpassword.Text+"' ";

SqlDataAdapter dtasql = new SqlDataAdapter(query,consql);
DataTable dt = new DataTable();
dtasql.Fill(dt);





if (dt.Rows.Count == 1 )
{
string ratee = dt.Rows[0][4].ToString();
if (ratee == "ارشد" || ratee == "مدیر")
{



Frmrecdata f = new Frmrecdata();


f.ShowDialog();


}
else if (dt.Rows.Count == 1 && ratee == "عادی")
{

DialogResult = DialogResult.No;


Frmrecdata f = new Frmrecdata();
f.dgrecoutpout.ReadOnly = true;
f.btnrecdateadd.Visible = false;
f.btnrecdatedel.Visible = false;
f.btnrecdatesave.Visible = false;

f.ShowDialog();





}

ASHKANLAEI
چهارشنبه 10 مهر 1398, 13:58 عصر
آیا نام دیتاگرید فرم دوم dgrecoutpout است؟

nemann
چهارشنبه 10 مهر 1398, 13:59 عصر
ممنون الان فرم اولم که ی دیتا گرید ویو توش دارم واسه کاربرایی که عادی هستند read only هستش و داخل این فرم ی دکمه هست که لینک میکنه به ی فرم دیگه من میخوام دیتا گرید ویویی که تو اون فرم هم هستش بتونم دسترسی کاربربرو بهش محدود کنم ولی نمیشه در این مورد کمک میخواستم که چجوری میتونم فرم سومم
ازتوی فرم دومم بهش لینک میشن واسه بعضیا ی محدودیتی اعمال کنم
ممنون میشم راهنماییم کنید

nemann
چهارشنبه 10 مهر 1398, 14:00 عصر
بله و فرم سومم دیتا گرید ویوش tblRecSerialDataGridView

ASHKANLAEI
چهارشنبه 10 مهر 1398, 14:03 عصر
f.tblRecSerialDataGridView.ReadOnly = this.dgrecoutpout.ReadOnly;

nemann
چهارشنبه 10 مهر 1398, 14:33 عصر
کجا باید بنویسمش توکد فرم لاگین
یا تو فرم لود فرم 3
یا تو باتن لینک به فرم سوم ؟

ASHKANLAEI
چهارشنبه 10 مهر 1398, 14:45 عصر
گزینه سه: لینک به فرم بعدی

nemann
چهارشنبه 10 مهر 1398, 15:12 عصر
ممنونم من ی کمک دیگه هم میخوام جسارتا

این برنامه واسه وارد کردن اطالعات از دیتا گرید ویو به بانکه یعنی هر اطلاعاتی که تو دیتا گردی ثبت میشه با ی دکمه بره تو دیتابیس ذخیره بشه میشه بگید مشکلش کجاست ؟



private void button2_Click(object sender, EventArgs e)
{
for (int i =0;i<dataGridView1.Rows.Count;i++)
{
String conectionstring = "data source =.;initial catalog=db_ass;integrated security =true ";
SqlConnection conection = new SqlConnection(conectionstring);
string query = " insert into tbluser values ('" + dataGridView1.Rows[i].Cells[0].Value.ToString() + "', '" + dataGridView1.Rows[i].Cells[1].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[2].Value.ToString() + "','" + dataGridView1.Rows[i].Cells[3].Value.ToString() + "')";
SqlCommand comand = new SqlCommand(query, conection);


conection.Open();


comand.ExecuteNonQuery();


conection.Close();

nemann
چهارشنبه 10 مهر 1398, 15:31 عصر
این هم پیغام خطاش هست
System.ArgumentException: 'No mapping exists from object type System.Windows.Forms.DataGridViewTextBoxCell to a known managed provider native type.'

ASHKANLAEI
چهارشنبه 10 مهر 1398, 15:42 عصر
این کد رو امتحان کنید:
private void button2_Click(object sender, EventArgs e) {
String conectionstring = "data source =.;initial catalog=db_ass;integrated security =true ";
SqlConnection conection = new SqlConnection(conectionstring);

string query;
for (int i =0;i<dataGridView1.Rows.Count;i++) {
string one, two, three, four;
one = dataGridView1.Rows[i].Cells[0].Value.ToString();
two = dataGridView1.Rows[i].Cells[1].Value.ToString();
three = dataGridView1.Rows[i].Cells[2].Value.ToString();
four = dataGridView1.Rows[i].Cells[3].Value.ToString();

query += $" insert into tbluser values ('{one}', '{two}','{three}','{four}');";
}
SqlCommand comand = new SqlCommand(query, conection);

conection.Open();
comand.ExecuteNonQuery();
conection.Close();
}