PDA

View Full Version : حرفه ای: بهترین راه برای فرخوانی لیست کارمندان



behrooz69
دوشنبه 23 مهر 1397, 15:31 عصر
یه سوال دوستان ، برنامه ای قراره نوشه شه که مثلا اطلاعات اسامی کارکنان توش باشه

فکر کنید اطلاعات 200 تا شعبه بانک قراره گذاشته شه توی برنامه و هر شعبه وقتی روش کلیک میشه اطلاعات شعبه + لیست کارمندانش باید نشون داده شه ،

و وقتی روی هر کارمند کلیک شه اطلاعات کارمند رو میاره

خوب حالا به نظر مهندیسین و دوستان ، بهترین راه حل چیه ؟؟؟ استفاده از چه ابزاری ؟؟

لازم به ذکره که اطلاعات قراره از دیتابیسSql فراخوانی بشه و اطلاعات کارمندان و شعبه ها هر کدوم توی یه تیبل جداگونه هستش .

hamidrezax1
دوشنبه 30 مهر 1397, 10:33 صبح
سلام مهندس وقت بخیر

استفاده از چه ابزاری ؟؟ متوجه نشدم.منظورت چی هست

behrooz69
چهارشنبه 02 آبان 1397, 07:32 صبح
سلام مهندس وقت بخیر

استفاده از چه ابزاری ؟؟ متوجه نشدم.منظورت چی هست


یه نمونه برات مثال بزنم

2 تا لیست باکس داریم ، تو یکیش مثلا اطلاعات شعبه های بانک کشور نوشته شده ، مثلا بانک ملی شعبه فاطمی ، بانک ملی شعبه ولی عصر ، بانک ملی شعبه کرج مثلا . اطلاعات شعبه از دیتابیس و تیبل شعبه ها گرفته میشه .

وقتی رو هر شعبه کلیک کنید ، میخوام اطلاعات کارمنداش بیاد ، از تیبل کارمندان فراخوانی میشه اسم بر اساس شعبه .

و وقتی رو هر کارمند کلیک میکنیم اطلاعات شخصی هر کارمند رو جلوش تو یه پنل نشون بده به طبع باید از دیتابیس بخونه .

میخوام شکیل باشه ، دوستان زحمت کمک رو بکشید

hamidrezax1
چهارشنبه 02 آبان 1397, 08:48 صبح
خوب دوست عزیز میتونی سه تا جدول داشته باشی و از دو راه حل استفاده کنی.راه حل اول...
1-جدول نام استان
2-جدول نام شعبه
3-جدول کارمندان
که سه کمبو باکس داشته باشن و به هم متصل بشن بنظرم از کمبو باکس استفاده کنید شکیل تر هستش تا از لیست باکس.
راه حل دوم استفاده از کوئری بر اساس کد استان ، نام شعبه و کارمندان هستش
جداول بایستی به شکل زیر فراخوانی بشن
149140

behrooz69
پنج شنبه 10 آبان 1397, 09:02 صبح
خوب دوست عزیز میتونی سه تا جدول داشته باشی و از دو راه حل استفاده کنی.راه حل اول...
1-جدول نام استان
2-جدول نام شعبه
3-جدول کارمندان
که سه کمبو باکس داشته باشن و به هم متصل بشن بنظرم از کمبو باکس استفاده کنید شکیل تر هستش تا از لیست باکس.
راه حل دوم استفاده از کوئری بر اساس کد استان ، نام شعبه و کارمندان هستش
جداول بایستی به شکل زیر فراخوانی بشن
149140

ممنون از نظرت ، من میخوام بالاش یه تکس باکس بذارم سرچشو تو لیست باکس نشون بده . تو حالت عادی هم باید شعبه ها نشون داده شه تا کاربر انتخاب کنه ، کمبوباکس زیاد جذاب نیست ، چون 80 تا شعبه هستش و انتخاب زیاد شکیل نمیشه.

نمونه کد میخوام ، نمونه عکس برات میفرستم

behrooz69
پنج شنبه 10 آبان 1397, 09:16 صبح
بفرما دوست عزیز ، همچین چیزی

149187

behrooz69
پنج شنبه 10 آبان 1397, 09:31 صبح
یه همچین چیزی میخوام تو مرحله اول

یه فرم با 4 تا تب مثلا

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

مرحله 1 - جستجو میشه ، مرحله 2 توی لیست باکس نشون داده میشه ، مرحله 3 با کلیک رو اسم جستجو شده اطلاعاتش جلو نشون داده میشه

توی تب دوم میتونیم از شعبه ها استفاده کنیم که عکسشو بالا فرستادم

149188

hamidrezax1
پنج شنبه 10 آبان 1397, 09:47 صبح
خب دوست عزیز الان مشکلت چی هست؟

behrooz69
پنج شنبه 10 آبان 1397, 09:54 صبح
خب دوست عزیز الان مشکلت چی هست؟

مشکل نیست گنگه واسم نمونه سورس میخوام ازش ، سورشو میخوام چون کارمندم و قضیه مربوط به ادارمه وقت واسه تریس و تست کد و ریسرچ ندارم زیاد باید تحویل بدم

shahram.a
یک شنبه 13 آبان 1397, 08:53 صبح
شما میتونین از کمپوننت grid control شرکت devexpress استفاده کنین.
همین خواسته رو تقریبا بدون کدنویسی میشه باهاش پیاده کرد.
روش کار رو هم در دموهاش میتونین ببینین.

behrooz69
یک شنبه 13 آبان 1397, 10:36 صبح
شما میتونین از کمپوننت grid control شرکت devexpress استفاده کنین.
همین خواسته رو تقریبا بدون کدنویسی میشه باهاش پیاده کرد.
روش کار رو هم در دموهاش میتونین ببینین.

من تو برنامم از component telerik استفاده کردم ، نمیخوام دوتا کامپوننت باهم استفاده شه ! سنگین نمیشه برنامه ؟؟

grid control رو از طریق ویزارد دیتای Sql رو توش واکشی کنم ، سرعتش میاد پایین و بهتره با کد این کارو کنم ! باید ببینم چجوریه چون کار نکردم باهاش .

behrooz69
یک شنبه 13 آبان 1397, 10:39 صبح
شما میتونین از کمپوننت grid control شرکت devexpress استفاده کنین.
همین خواسته رو تقریبا بدون کدنویسی میشه باهاش پیاده کرد.
روش کار رو هم در دموهاش میتونین ببینین.


چجوری میشه توش ریلیشن زد ، وقتی روی یه گرید کلیک میکنی اطلاعات مربوط به همون فرد رو بیاره تو گرید بعدی ؟

محمد آشتیانی
یک شنبه 13 آبان 1397, 12:53 عصر
سلام
میتونی ساختار دیتابیسی رو که قراره دیتا ازش لود کنی و نمایش بدی رو اینجا بذاری؟

behrooz69
دوشنبه 14 آبان 1397, 11:55 صبح
سلام
میتونی ساختار دیتابیسی رو که قراره دیتا ازش لود کنی و نمایش بدی رو اینجا بذاری؟

اگه درست متوجه شده باشم حرفتونو مهندس گل ما . :قلب:

من یه دیتابیس دارم ، با تیبل های مورد نیاز ، شعب ( shoab ) ، کارمندان ( Karmandan )

خوب تو این فرمم قراره اول شعبه ها توی یه لیست باکس نشون داده شه از تیبل شعب .

بعدش وقتی روی شعبه کلیک میکنیم اسامی کارمنداش نشون داده شه .

و وقتی روی هر کارمند کلیک میکنیم اطلاعات شخصی ، رزومه ، سمتی که داره ، تلفن و داخلیش و ... نشون داده شه تویه یه کادر جدا ، حالا یا پاپ آپ فرم باشه یا جلوش توی چندتا لیبل .

نمونه :

شعبه ها :

فاطمی
تهرانپاس
پونک
کرج
گرگان

---

روی فاطمی کلیک شد .

--

اسامی هاش :

رستمانی
علوی
صالحی
نوری

--

روی رستمانی کلیک شد :

نام : بهروز
نام خانوادگی : رستمانی
پرسنلی : 1122
تلفن : 0911111111
داخلی : 2312
سمت : کارشناس بخش

رزومه : کارمند بخش مدیریت ، ...


--
امکان داره وقتی روی اسم کارمند کلیک شه ، اطلاعات رو علاوه بر تیبل شعب و کارمندان ، از جای دیگه هم بخونه فعلا همین دو تا کافیه ، نمونش باشه از هر جایی میشه بخونی


--

من توی کمبو باکس هام ، دیتاگرید هام ، هیچ وقت به صورت ویزاردی تیبل رو بهش اضافه نکردم ، چون حس میکنم برنامه کند میشه .

همیشه با کد نویسی دیتاهارو توشون فرا میخونم اینجوری سرعت برنامه خیلی بیشتر میشه

نمیدونم اشتباس یا نه . ولی به وضوح سرعت رو میبینم با اینکار .

hamidrezax1
دوشنبه 14 آبان 1397, 17:46 عصر
سلام دوست عزیز از این پروژه میتونی الهام بگیری و کارت رو راه بندازی.در ضمن هم بک آپ برات گذاشتم و هم دیتابیس رو.برنامه هم با وی بی 2010 نوشته شده
موفق باشی
دانلــــــــــــــــــــو د (http://uupload.ir/view/8phz_kk.rar/)

behrooz69
سه شنبه 15 آبان 1397, 08:46 صبح
سلام دوست عزیز از این پروژه میتونی الهام بگیری و کارت رو راه بندازی.در ضمن هم بک آپ برات گذاشتم و هم دیتابیس رو.برنامه هم با وی بی 2010 نوشته شده
موفق باشی
دانلــــــــــــــــــــو د (http://uupload.ir/view/8phz_kk.rar/)

خیلی لطف کردین بذارید تست کنم در اسرع وقت خبر میدم بازم ممنون

محمد آشتیانی
سه شنبه 15 آبان 1397, 14:58 عصر
سلام
این نمونه رو ببینید ، من فکر میکنم تا حد زیادی ایده میده که چه باید بکنید

این هم اسکریپت دیتابیسش با چنتا رکورد نمونه (فقط آدرس محل ایجاد دیتابیس رو توی اسکریپت اصلاح کنید)

USE [master]
GO
/****** Object: Database [SampleDB] Script Date: 11/6/2018 3:18:35 PM ******/
CREATE DATABASE [SampleDB]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'SampleDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\SampleDB.mdf ' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'SampleDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\SampleDB_log .ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [SampleDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [SampleDB] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_NULLS OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_PADDING OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [SampleDB] SET ARITHABORT OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [SampleDB] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [SampleDB] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [SampleDB] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [SampleDB] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [SampleDB] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [SampleDB] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [SampleDB] SET DISABLE_BROKER
GO
ALTER DATABASE [SampleDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [SampleDB] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [SampleDB] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [SampleDB] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [SampleDB] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [SampleDB] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [SampleDB] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [SampleDB] SET RECOVERY FULL
GO
ALTER DATABASE [SampleDB] SET MULTI_USER
GO
ALTER DATABASE [SampleDB] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [SampleDB] SET DB_CHAINING OFF
GO
ALTER DATABASE [SampleDB] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [SampleDB] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
EXEC sys.sp_db_vardecimal_storage_format N'SampleDB', N'ON'
GO
USE [SampleDB]
GO
/****** Object: Table [dbo].[Branch] Script Date: 11/6/2018 3:18:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Branch](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NULL,
[Address] [nvarchar](max) NULL,
CONSTRAINT [PK_Branch] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object: Table [dbo].[Employee] Script Date: 11/6/2018 3:18:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employee](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PersonalId] [nvarchar](20) NULL,
[Name] [nvarchar](50) NULL,
[Family] [nvarchar](50) NULL,
[PhoneNumber] [nvarchar](20) NULL,
[Posotion] [nvarchar](100) NULL,
[BranchId] [int] NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Branch] ON
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (1, N'تهران', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (2, N'شیراز', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (3, N'اصفهان', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (4, N'مشهد', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (5, N'تبریز', NULL)
GO
SET IDENTITY_INSERT [dbo].[Branch] OFF
GO
SET IDENTITY_INSERT [dbo].[Employee] ON
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (1, N'12345', N'علی', N'اکبری', N'09121234567', N'مدیر', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (2, N'12121', N'اکبر', N'محمدی', NULL, N'معاون', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (3, N'33333', N'ایمان', N'خالدی', NULL, N'کارمند', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (4, N'66554', N'رضا', N'عبادی', N'232345', NULL, 2)
GO
SET IDENTITY_INSERT [dbo].[Employee] OFF
GO
ALTER TABLE [dbo].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Branch] FOREIGN KEY([BranchId])
REFERENCES [dbo].[Branch] ([Id])
GO
ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Branch]
GO
USE [master]
GO
ALTER DATABASE [SampleDB] SET READ_WRITE
GO





فایل دیتابیس رو هم جدا قرار میدم ، البته چون با نسخه 2017 ساخته شده ممکنه نتونید بازش کنید (اگر نشد از همون اسکریپت استفاده کنید).

نکته بعدی اینه که کانکشن استرینگ رو داخل فایل App.Config تغییر بدید.

behrooz69
یک شنبه 20 آبان 1397, 07:27 صبح
سلام
این نمونه رو ببینید ، من فکر میکنم تا حد زیادی ایده میده که چه باید بکنید

این هم اسکریپت دیتابیسش با چنتا رکورد نمونه (فقط آدرس محل ایجاد دیتابیس رو توی اسکریپت اصلاح کنید)

USE [master]
GO
/****** Object: Database [SampleDB] Script Date: 11/6/2018 3:18:35 PM ******/
CREATE DATABASE [SampleDB]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'SampleDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\SampleDB.mdf ' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'SampleDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\SampleDB_log .ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [SampleDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [SampleDB] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_NULLS OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_PADDING OFF
GO
ALTER DATABASE [SampleDB] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [SampleDB] SET ARITHABORT OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [SampleDB] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [SampleDB] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [SampleDB] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [SampleDB] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [SampleDB] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [SampleDB] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [SampleDB] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [SampleDB] SET DISABLE_BROKER
GO
ALTER DATABASE [SampleDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [SampleDB] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [SampleDB] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [SampleDB] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [SampleDB] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [SampleDB] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [SampleDB] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [SampleDB] SET RECOVERY FULL
GO
ALTER DATABASE [SampleDB] SET MULTI_USER
GO
ALTER DATABASE [SampleDB] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [SampleDB] SET DB_CHAINING OFF
GO
ALTER DATABASE [SampleDB] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [SampleDB] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
EXEC sys.sp_db_vardecimal_storage_format N'SampleDB', N'ON'
GO
USE [SampleDB]
GO
/****** Object: Table [dbo].[Branch] Script Date: 11/6/2018 3:18:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Branch](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NULL,
[Address] [nvarchar](max) NULL,
CONSTRAINT [PK_Branch] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object: Table [dbo].[Employee] Script Date: 11/6/2018 3:18:35 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employee](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PersonalId] [nvarchar](20) NULL,
[Name] [nvarchar](50) NULL,
[Family] [nvarchar](50) NULL,
[PhoneNumber] [nvarchar](20) NULL,
[Posotion] [nvarchar](100) NULL,
[BranchId] [int] NULL,
CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Branch] ON
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (1, N'تهران', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (2, N'شیراز', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (3, N'اصفهان', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (4, N'مشهد', NULL)
GO
INSERT [dbo].[Branch] ([Id], [Name], [Address]) VALUES (5, N'تبریز', NULL)
GO
SET IDENTITY_INSERT [dbo].[Branch] OFF
GO
SET IDENTITY_INSERT [dbo].[Employee] ON
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (1, N'12345', N'علی', N'اکبری', N'09121234567', N'مدیر', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (2, N'12121', N'اکبر', N'محمدی', NULL, N'معاون', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (3, N'33333', N'ایمان', N'خالدی', NULL, N'کارمند', 1)
GO
INSERT [dbo].[Employee] ([Id], [PersonalId], [Name], [Family], [PhoneNumber], [Posotion], [BranchId]) VALUES (4, N'66554', N'رضا', N'عبادی', N'232345', NULL, 2)
GO
SET IDENTITY_INSERT [dbo].[Employee] OFF
GO
ALTER TABLE [dbo].[Employee] WITH CHECK ADD CONSTRAINT [FK_Employee_Branch] FOREIGN KEY([BranchId])
REFERENCES [dbo].[Branch] ([Id])
GO
ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Branch]
GO
USE [master]
GO
ALTER DATABASE [SampleDB] SET READ_WRITE
GO





فایل دیتابیس رو هم جدا قرار میدم ، البته چون با نسخه 2017 ساخته شده ممکنه نتونید بازش کنید (اگر نشد از همون اسکریپت استفاده کنید).

نکته بعدی اینه که کانکشن استرینگ رو داخل فایل App.Config تغییر بدید.


خیلی خیلی خیلی ازتون ممنونم بزرگوار از وقتی که گذاشتید .

حالا چند سوال گنگ میمونه !

نوع برنامه نویسیتون بسیار تمیز و شسته رفته اس . و فرمودین از معماری سه لایه استفاده کردید .

1 - من برنامم بر پایه معماری سه لایه نیست ! الان شما این قسمت رو بر این اساس نوشتید تو برنامم مشکلی پیش نمیاد ؟؟ یعنی قسمتی بدون لایه و قسمتی سه لایه ؟؟

2 - زحمت میکشید یه توضیح بدید که دقیقا چیکار کردید و توضیح راجب کد هاتون بدید ؟

3 - البته کد هاتون رو کامل بررسی نکردم ، ولی خوب پیش زمینه توضیحات داشته باشم بد نیست ، نوع واکشی دیتاتون از دیتابیس چی هست ؟؟ ویزارد که نیست ! چه کاری میشه انجام داد تا سرعت لود دیتا ها زیاد شه و برنامه کند نشه ؟

محمد آشتیانی
یک شنبه 20 آبان 1397, 11:22 صبح
سلام
مشکلی پیش نمیاد
شما یکبار کد رو بخونید ، متوجه نوع واکشی و همه داستان ها می شوید (خیر ویزارد نیست)

اینکه چجوری نوشته شده مهم نیست ، بنده به این سبک نوشتم که کمی کدها سر و شکل مرتبی داشته باشند و درکشون ساده بشه ، شما می تونید اصلا از این روش و آبجکت ها و .. استفاده نکنید اگر سخته براتون. عرض کردم شما می تونید ازش ایده بگیرید که چکار باید بکنید

ahanshahr
یک شنبه 20 آبان 1397, 12:16 عصر
نمونه سورس داخل سایت Sourceforge زیاد هست. اونجا دانلود کنید دسترسی باز برای عموم

behrooz69
یک شنبه 20 آبان 1397, 14:23 عصر
سلام
مشکلی پیش نمیاد
شما یکبار کد رو بخونید ، متوجه نوع واکشی و همه داستان ها می شوید (خیر ویزارد نیست)

اینکه چجوری نوشته شده مهم نیست ، بنده به این سبک نوشتم که کمی کدها سر و شکل مرتبی داشته باشند و درکشون ساده بشه ، شما می تونید اصلا از این روش و آبجکت ها و .. استفاده نکنید اگر سخته براتون. عرض کردم شما می تونید ازش ایده بگیرید که چکار باید بکنید


خیلی خیلی ازتون ممنونم به امید موفیقت همه دوستان

behrooz69
سه شنبه 22 آبان 1397, 10:28 صبح
سلام
مشکلی پیش نمیاد
شما یکبار کد رو بخونید ، متوجه نوع واکشی و همه داستان ها می شوید (خیر ویزارد نیست)

اینکه چجوری نوشته شده مهم نیست ، بنده به این سبک نوشتم که کمی کدها سر و شکل مرتبی داشته باشند و درکشون ساده بشه ، شما می تونید اصلا از این روش و آبجکت ها و .. استفاده نکنید اگر سخته براتون. عرض کردم شما می تونید ازش ایده بگیرید که چکار باید بکنید


جناب آشتیانی ، من چون با معماری سه لایه کار نکردم اصلا ، برام گنگه عملکردش ، ولی ظاهر و کارکرد برنامتون همون چیزیه که من میخوام ، برام سادش میکنید ، یا توضیحی بهمون بدید

یا بدون استفاده از سه لایه بذارید . ما آماتوریم :خجالت:

behrooz69
سه شنبه 22 آبان 1397, 10:37 صبح
سلام دوست عزیز از این پروژه میتونی الهام بگیری و کارت رو راه بندازی.در ضمن هم بک آپ برات گذاشتم و هم دیتابیس رو.برنامه هم با وی بی 2010 نوشته شده
موفق باشی
دانلــــــــــــــــــــو د (http://uupload.ir/view/8phz_kk.rar/)

جستجو و نمایش در لیست باکس
و نمایش اطلاعات کارمند بعد از کلیک روش خیلی مهمه .

hamidrezax1
چهارشنبه 23 آبان 1397, 04:41 صبح
سلام دوست عزیز دقیقا چیزی که فرمودید توی کدها موجود هستش.البته این نمونه کد استاندارد نیست ولی کار شما رو میتونه راه بندازه

behrooz69
چهارشنبه 23 آبان 1397, 07:14 صبح
سلام دوست عزیز دقیقا چیزی که فرمودید توی کدها موجود هستش.البته این نمونه کد استاندارد نیست ولی کار شما رو میتونه راه بندازه

استانداردش چجوریه ؟؟ توی کد های شما ؟؟؟مطمئنید ؟؟؟

محمد آشتیانی
سه شنبه 29 آبان 1397, 09:08 صبح
جناب آشتیانی ، من چون با معماری سه لایه کار نکردم اصلا ، برام گنگه عملکردش ، ولی ظاهر و کارکرد برنامتون همون چیزیه که من میخوام ، برام سادش میکنید ، یا توضیحی بهمون بدید

یا بدون استفاده از سه لایه بذارید . ما آماتوریم :خجالت:

سلام
عزیزم نمونه ای که گذاشتم اصلا پیچیدگی نداره ، شما اون متدی که کوئری داره توش اجرا میشه رو بیار توی فرم و نتیجه رو همونجا بگیر و بده به دیتاگریدت (نه بیزینس آبجکت لازم داره و نه هیچ چیز دیگه). ولی این در بلند مدت تبدیل میشه به کد اسپاگتی :)

اما به عقیده بنده کمی تلاش کن ، فقط کمی ، که کار رو بنا بر اصول جلو ببری و خودتو تقویت کنی ، اینکه من بلد نیستم پس راه حل ساده نشون بدید ، راه به جایی نخواهد برد

behrooz69
سه شنبه 29 آبان 1397, 09:45 صبح
درسته حرفتون کاملا متینه ، واسه هر چیزی باید تلاش کرد و به نتیجه شیرین رسید ، دلیلش رو براتون توی پی وی میفرستم