سلام میخواستم ببینم در Entity Framework چجوری میشه بدون گرید ویو یا لیست ویو مستقیم رکورد ها رو از دیتابیس به تکس باکس ها بریزم و همون جا حذف یا ادیتشون کنم
در ضمن من مشکلی با ذخیره اطلاعات ندارم
ممنون میشم کمکم کنید یا ارجاع بدین چون زیاد سرچ زدم
سلام میخواستم ببینم در Entity Framework چجوری میشه بدون گرید ویو یا لیست ویو مستقیم رکورد ها رو از دیتابیس به تکس باکس ها بریزم و همون جا حذف یا ادیتشون کنم
در ضمن من مشکلی با ذخیره اطلاعات ندارم
ممنون میشم کمکم کنید یا ارجاع بدین چون زیاد سرچ زدم
سلام
فک کنم باید یک شرط براش بذارید و اون رو به این ترتیب داخل تکسباکس نمایش بدید
var q = db.tbl_PooL.Where(c => c.NameR == lbl_text1.Text).Single();
textbox1.text = q.NameR;
textbox2.text = q.NameUser;
سلام
ممنون
کد شما رو نوشتم درست شد و اطلاعات رو از دیتابیس به تکس باکس ها میریزه
حالا فقط اگه لطف کنید واسه ذخیره و حذف کردنش هم کمکم کنید ممنون میشم
برا ذخیره ش خب باید دقیقا برعکس این کار را انجام بدی البته توی linq
var q = db.tbl_PooL.Where(c => c.NameR == lbl_text1.Text).Single();
q.NameR= textbox1.text;
q.NameUser= textbox2.text;
db.submitchange();
سلام خیلی ببخشید انگار اشتباه نوشتم
شرمنده
اطلاعات رو از دیتابیس به تکس باکسها میریزم
حالا میخوام توی همون تکس باکس عمل ویرایش رو انجام بدم
و طبق کلید اصلی که طبق همون هم عملیات جستجو رو هم انجام میدم حذفشون کنم
مشکلم فقط همین دوتا هستش
ممنون اگه کمکم کنید
شما با دستورات حذف و ویرایش در ارتباط با پایگاه داده مشکل دارین؟
منظورتون اینه کد حذف یک رکورد از ذیتابیس را لازم دارین؟با linq؟
.
اگه این دستورات را می خاین من طبق این کدی که دوستمون از روش مثال زدند جواب میدم اگه منظورتون چیزی دیگه س بگید
tbl_PooL q = db.tbl_PooL.Where(c => c.NameR == lbl_text1.Text).Single();
db.tbl_PooL.deleteonsubmite(q);
db.submitchange();
سلام واسه ادیتش چطوری باید شرط رو اجرا کنم
با توجه به از توی تکس باکس ها میخوام عمل ویرایش رو انجام بدم
کد شما رو حذف نوشتم ارورش این بود
The object cannot be deleted because it was not found in the ObjectStateManager
سلام
ممنونم از دوستان
واسه ادیتش چطوری باید شرط رو اجرا کنم
با توجه به از توی تکس باکس ها میخوام عمل ویرایش رو انجام بدم
راستی این دستور و این نحوه کد نویسی رو کجا میتونم مفصلش رو پیدا کنم . جدیده واسم
با دستورات ADO آشنا هستم خوب
ولی این نحوه کد نویسی واسه Entity Framework هستش؟
شما یه شی سراسری از نوع اون تیبل در فرم می سازی و هر موقع که اطلاعاتی از دیتابیس گرفتی می ریزی تو اون شی و به هر طریقی که خواستی ویرایشش می کنی ( چه تکس باس یا چه در کد نویسی ) بعد از اون فقط در دکمه دستور savechang() . خود ef این تغییرات رو تشخیص می ده و برای اون رکورد مورد نظر اعمال می کنه
سلام یعنی دقیقا کدش به چطوری میشه؟
مدت زیادی هست که سی شارپ کار نکردم احتمالا از لحاظ لغوی مشکلی پیش بیاد .
public class form1
{
private dbcontext db;
private table1 currentrecord{get;set;}
public form1()
{
db=new dbcontext();
currentrecord=table1();
}
private void search()
{
currentrecord=db.table1s.firstordefult(o=>o.name=" ali")
if(currentrecord!=null)
{
name.text=currentrecord.name;
.
.
.
}
private void save()
{
db.savechang();
}
}
}
}
از کدتون نتونستم استفاده کنم نبخاطر اشکال های لغوی
چون کدهای حذف و و ذخیره و جستجو با کد شما فرق داره
من فقط میخوام ببینم در این کد قسمت قرمز رنگ رو چی باید بنویسم
tbl_PooL table = db.tbl_PooL.First(c => c.Id == a);
db.tbl_PooL.Remove(table);
db.SaveChanges();
البته با توجه اینکه میخوام از توی تکی باکس ویرایش رو انجام بدم
در این کد شما میاید یه رکورد رو حذف می کنید
ممنون از توضیحتون
منظورم اینه که باید واسه ادیت رکورد های توی تکس باکس ها
در کد بالا بجای Remove
چه چیزی باید نوشت که ویرایش کنه و تغییرات رو ذخیره کنه .
سلام شما این متغییر a رو کجا تعریفش کردین ؟ و چطوری ؟
کدی که متغیر a در اون هست مربوط به خدتونه !
نگاه کنید در ef ما به دو صورت کار می کنیم :
1 ) روش متصل ) این همون روشی هست که من استفاده کردم یعنی یک شی به صورت عمومی تعریف می کنی و بعد مقدار دهیش می کنی که در این روش ef خودش تغییرات رو دنبال می کنه
2 ) روش غیر متصل ) در این روش شما متغیر عمومی استفاده نمی کنی و در یه دکمه یه رکورد رو از دیتابیس می گیری و به تکس باکس هات می دی و وقتی که خواستی در دیتابیس ذخیره کنی به وسیله دستوراتی مثل find و Atach ابتدا رکوردی که تغیر دادی رو به ef معرفی می کنی و در نهایت دستور savechang() رو اجرا می کنی .
سلام ممنون
این نحوه کد نویسی بهتره یا روش متصل شما ؟ از لحاظ سرعت کار با دیتابیس ؟ چرا ؟
توی این کد من از گرید ویو استفاده کردم حالا میخوام از تکس باکس ها استفاده کنم واسه خروجی سرچ و بقیه عملیات( یعنی انتقال اطلاعات به تکس باکس ها )
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;
namespace WinformEntity
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
userdbEntities database = new userdbEntities();
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = database.usertbs.ToList();
}
private void btnNew_Click(object sender, EventArgs e)
{
usertb table =new usertb
{
table.name = txtname.Text,
table.family = txtfamily.Text,
table.idpublic = txtidpublic
};
database.usertbs.AddObject(table);
database.SaveChanges();
dataGridView1.DataSource = database.usertbs.ToList();
}
private void btnedit_Click(object sender, EventArgs e)
{
usertb table = new usertb();
int m = int.Parse(dataGridView1.CurrentRow.Cells[2].Value.ToString());
usertb udb = database.usertbs.First(a => a.idpublic == m);
table.name = txtname.Text;
table.family = txtfamily.Text;
table.idpublic = txtidpublic;
database.SaveChanges();
dataGridView1.DataSource = database.usertbs.ToList();
}
private void btnDelete_Click(object sender, EventArgs e)
{
usertb table = new usertb();
int m = int.Parse(dataGridView1.CurrentRow.Cells[2].Value.ToString());
usertb udb = database.usertbs.First(a => a.idpublic == m);
table.name = txtname.Text;
table.family = txtfamily.Text;
table.idpublic = txtidpublic;
database.usertbs.DeleteObject(table);
database.SaveChanges();
dataGridView1.DataSource = database.usertbs.ToList();
}
private void btnsearch_Click(object sender, EventArgs e)
{
var mSearch = database.usertbs.Where(a=>a.idpublic.Contains(txts earch.Text());
dataGridView1.DataSource=mSearch.ToList();
}
}
}
آخرین ویرایش به وسیله m.bibjan : شنبه 28 دی 1392 در 02:46 صبح
این نحوه کد نویسی بهتره یا روش متصل شما ؟ از لحاظ سرعت کار با دیتابیس ؟ چرا ؟
توی این کد من از گرید ویو استفاده کردم حالا میخوام از تکس باکس ها استفاده کنم واسه خروجی سرچ و بقیه عملیات( یعنی انتقال اطلاعات به تکس باکس ها )
کسی نیست جواب بده؟
آخرین ویرایش به وسیله m.bibjan : شنبه 28 دی 1392 در 02:47 صبح
بهتره جستجو کنید تا از پرسش سوال تکراری پرهیز بشه.
برای حذف میتونی شئ udb رو ارسال کنی:
int m = int.Parse(dataGridView1.CurrentRow.Cells[2].Value.ToString());
usertb udb = database.usertbs.Single(a => a.idpublic == m);
database.usertbs.DeleteObject(udb);
database.SaveChanges();
dataGridView1.DataSource = database.usertbs.ToList();
ممنون
ولی من عمل ویرایش و حذف رو از توی تکس باکسها میخوام انجام بدم
نه گرید ویو
توی گرید ویو مشکلی ندارم
بدون گرید ویو و با تکس باکس ها میخوام این کار رو انجامش بدم
بازم ممنون