PDA

View Full Version : دریافت تاریخ و ساعت از سیستم سرور در سی شارپ



aminttt
سه شنبه 24 اردیبهشت 1398, 22:14 عصر
سلام دوستان لطفاً راهنمایی کنید چطور می توان ساعت و تاریخ رو از سیستم سرور روی کلاینت دریافت کرد

Shadow_net
سه شنبه 24 اردیبهشت 1398, 22:45 عصر
از طریق Socket

parvizwpf
سه شنبه 24 اردیبهشت 1398, 22:50 عصر
شما اگر برنامتون به دیتابیس سرور وصل میشه هم میتونید از طریق کوئری sql اینکارو کنید

aminttt
سه شنبه 24 اردیبهشت 1398, 23:31 عصر
شما اگر برنامتون به دیتابیس سرور وصل میشه هم میتونید از طریق کوئری sql اینکارو کنید

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

aminttt
چهارشنبه 25 اردیبهشت 1398, 12:45 عصر
دوستان راهنمایی کنید

davidrobert
چهارشنبه 25 اردیبهشت 1398, 13:22 عصر
اگه برنامه تحت شبکه باشه میتوانید باکوئری ساده اگه تاریخ الزام تو نرم افزار نیست یعنی تاریخ ثبت قرار نیست دستکاری بشه. و موقع ثبت قرار بگید تاریخ جاری هستش شما میتوانید با کوئری ساده از تاریخ سرور استفاده کنید یعنی اطلاعات از کاربر بگیرید و روی سرور پروسیجر نوشتید و داخل اون پروسیجر بگید تاریخ از خود سرور باشه با این روش اگه تاریخ سرور دقیق بدون مشکل باشه تاریخ سیستم کاربر حتی برای چند سال پیش بود مشکلی نیست چون تاریخ درست داخل سرور و برای بررسی و یا ذخیره شدن از سرور تغذیه میکنه و به همین خاطر نگران ثبت تاریخ اشتباه از سمت کاربر نیستید.

aminttt
چهارشنبه 25 اردیبهشت 1398, 13:57 عصر
اگه برنامه تحت شبکه باشه میتوانید باکوئری ساده اگه تاریخ الزام تو نرم افزار نیست یعنی تاریخ ثبت قرار نیست دستکاری بشه. و موقع ثبت قرار بگید تاریخ جاری هستش شما میتوانید با کوئری ساده از تاریخ سرور استفاده کنید یعنی اطلاعات از کاربر بگیرید و روی سرور پروسیجر نوشتید و داخل اون پروسیجر بگید تاریخ از خود سرور باشه با این روش اگه تاریخ سرور دقیق بدون مشکل باشه تاریخ سیستم کاربر حتی برای چند سال پیش بود مشکلی نیست چون تاریخ درست داخل سرور و برای بررسی و یا ذخیره شدن از سرور تغذیه میکنه و به همین خاطر نگران ثبت تاریخ اشتباه از سمت کاربر نیستید.

ممنون از پاسخگویی اگه سورس کد در رابطه داشته باشید بزارید ممنون میشم.

davidrobert
چهارشنبه 25 اردیبهشت 1398, 14:19 عصر
این به روش پروسجیر نویسی هستش که همزمان از چندین کوئری استفاده میکنم ولی فقط یک کوئری صدا میزنم.
USE [DBJobs]
GO
/****** Object: StoredProcedure [dbo].[Pro_Register] Script Date: 25/02/1398 14:43:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER procedure [dbo].[Pro_Register]
(
@R_ID bigint=null,
@R_Guild int=null,
@R_Guild_Name nvarchar(50)=null,
@R_Nationality int=null,
@R_Sex int=null,
@R_Name nvarchar(50)=null,
@R_Last nvarchar(50)=null,
@R_Father nvarchar(50)=null,
@R_Date_Of_Birth varchar(10)=null,
@R_Place_Of_Brith nvarchar(50)=null,
@R_National_Code_Or_Passports nvarchar(50)=null,
@R_ID_Number varchar(10)=null,
@R_Serial_ID varchar(6)=null,
@R_Issued nvarchar(50)=null,
@R_Tel varchar(10)=null,
@R_Emial nvarchar(250)=null,
@R_Website nvarchar(250)=null,
@R_Logo nvarchar(250)=null,
@R_Sign nvarchar(250)=null,
@R_C_ID int=null,
@R_latitude nvarchar(50)=null,
@R_longitude nvarchar(50)=null,
@R_Full_Address nvarchar(250)=null,
@R_SMS_Address nvarchar(100)=null,
@R_Zip_Code varchar(10)=null,
@R_ISP nvarchar(250)=null,
@R_IP_Server nvarchar(50)=null,
@R_IP_Local nvarchar(50)=null,
@R_Insert_Date varchar(10)=null,
@R_Insert_Time time=null,
@C_Titles nvarchar(max)=null,
@S_Title nvarchar(6)=null,
@StatementType nvarchar(150)=''
)
as begin
--Declare @id int;
declare @date date;
declare @time time;
--Select @id = isnull(max(CBF_ID),0) + 1 from Tbl_Cart_Bank_Forosh;
select @date = (SELECT CONVERT(date, getdate()));
select @time=(SELECT CONVERT(VARCHAR(8),GETDATE(),108));


if @StatementType='Select'
SELECT R_ID, R_Guild, R_Guild_Name, R_Nationality, R_Sex, R_Name, R_Last, R_Father,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Date_Of_B irth, '/') AS Expr1) AS R_Date_Of_Birth, R_Place_Of_Brith, R_National_Code_Or_Passports, R_ID_Number, R_Serial_ID, R_Issued, R_Tel, R_Emial,
R_Website, R_Logo, R_Sign, R_C_ID, R_latitude, R_longitude, R_Full_Address, R_SMS_Address, R_Zip_Code, R_ISP, R_IP_Server, R_IP_Local,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Insert_Da te, '/') AS Expr1) AS R_Insert_Date, R_Insert_Time,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Update_Da te, '/') AS Expr1) AS R_Update_Date, R_Update_Time, R_Update_Count
FROM Tbl_Register
ORDER BY R_ID DESC

if @StatementType='Insert'
INSERT INTO Tbl_Register
(R_Guild, R_Guild_Name, R_Nationality, R_Sex, R_Name, R_Last, R_Father, R_Date_Of_Birth, R_Place_Of_Brith, R_National_Code_Or_Passports, R_ID_Number, R_Serial_ID, R_Issued, R_Tel, R_Emial, R_Website, R_Logo, R_Sign, R_C_ID, R_latitude, R_longitude, R_Full_Address, R_SMS_Address, R_Zip_Code, R_ISP, R_IP_Server, R_IP_Local, R_Insert_Date, R_Insert_Time)
VALUES (CASE WHEN @R_Guild is null THEN 0 ELSE @R_Guild END ,@R_Guild_Name,CASE WHEN @R_Nationality is null THEN 0 ELSE @R_Nationality END ,CASE WHEN @R_Sex is null THEN 0 ELSE @R_Sex END ,@R_Name,@R_Last,@R_Father,CASE WHEN @R_Date_Of_Birth is null THEN null ELSE (select dbo.ShamsiToMiladi( @R_Date_Of_Birth)) end,@R_Place_Of_Brith,@R_National_Code_Or_Passport s,@R_ID_Number,@R_Serial_ID,@R_Issued,@R_Tel,@R_Em ial,@R_Website,@R_Logo,@R_Sign,@R_C_ID,@R_latitude ,@R_longitude,@R_Full_Address,@R_SMS_Address,@R_Zi p_Code,@R_ISP,@R_IP_Server,@R_IP_Local,@date,@time )

if @StatementType='Fetch_ID'
SELECT Tbl_Register.R_ID, Tbl_Register.R_National_Code_Or_Passports, Tbl_Sex.S_Title, Tbl_Register.R_Name, Tbl_Register.R_Last
FROM Tbl_Register INNER JOIN
Tbl_Sex ON Tbl_Register.R_Sex = Tbl_Sex.S_ID
WHERE (Tbl_Register.R_National_Code_Or_Passports = @R_National_Code_Or_Passports)
ORDER BY Tbl_Register.R_ID DESC

if @StatementType='FeedBack_Register'
SELECT Tbl_Register.R_ID, Tbl_Category_Job.CJ_Title, Tbl_Jobs.J_Title, Tbl_Register.R_Guild_Name, Tbl_Countries.C_Titles, Tbl_Sex.S_Title, Tbl_Register.R_Name, Tbl_Register.R_Last, Tbl_Register.R_Father,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Date_Of_B irth, '/') AS Expr1) AS R_Date_Of_Birth, Tbl_Register.R_Place_Of_Brith, Tbl_Register.R_National_Code_Or_Passports, Tbl_Register.R_ID_Number,
Tbl_Register.R_Serial_ID, Tbl_Register.R_Issued, Tbl_Register.R_Tel, Tbl_Mobile.M_Mobile, Tbl_Register.R_Emial, Tbl_Register.R_Website, Tbl_Register.R_Logo, Tbl_Register.R_Sign, Tbl_Province.P_Title, Tbl_City.C_Title,
Tbl_Register.R_latitude, Tbl_Register.R_longitude, Tbl_Register.R_Full_Address, Tbl_Register.R_SMS_Address, Tbl_Register.R_Zip_Code, Tbl_Register.R_ISP, Tbl_Register.R_IP_Server, Tbl_Register.R_IP_Local,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Insert_Da te, '/') AS Expr1) AS R_Insert_Date, Tbl_Register.R_Insert_Time,
(SELECT dbo.MakeCompleteShmsiDate(Tbl_Register.R_Update_Da te, '/') AS Expr1) AS R_Update_Date, Tbl_Register.R_Update_Time, Tbl_Register.R_Update_Count
FROM Tbl_Register INNER JOIN
Tbl_Jobs ON Tbl_Register.R_Guild = Tbl_Jobs.J_ID INNER JOIN
Tbl_Category_Job ON Tbl_Jobs.J_CJ_ID = Tbl_Category_Job.CJ_ID INNER JOIN
Tbl_Countries ON Tbl_Register.R_Nationality = Tbl_Countries.C_ID INNER JOIN
Tbl_Sex ON Tbl_Register.R_Sex = Tbl_Sex.S_ID INNER JOIN
Tbl_City ON Tbl_Register.R_C_ID = Tbl_City.C_ID INNER JOIN
Tbl_Province ON Tbl_City.C_P_ID = Tbl_Province.P_ID INNER JOIN
Tbl_Mobile ON Tbl_Register.R_ID = Tbl_Mobile.M_R_ID
WHERE (Tbl_Register.R_National_Code_Or_Passports = @R_National_Code_Or_Passports) AND (Tbl_Register.R_Name = @R_Name) AND (Tbl_Register.R_Last = @R_Last) AND (Tbl_Register.R_Father = @R_Father)
ORDER BY Tbl_Register.R_ID DESC

if @StatementType='Fetch_Info'
SELECT Tbl_Register.R_ID, Tbl_Register.R_National_Code_Or_Passports, Tbl_Sex.S_Title, Tbl_Register.R_Name, Tbl_Register.R_Last, Tbl_Register.R_Sign, Tbl_Mobile.M_Mobile, Tbl_Register.R_Emial
FROM Tbl_Register INNER JOIN
Tbl_Sex ON Tbl_Register.R_Sex = Tbl_Sex.S_ID INNER JOIN
Tbl_Mobile ON Tbl_Register.R_ID = Tbl_Mobile.M_R_ID
WHERE (Tbl_Register.R_National_Code_Or_Passports = @R_National_Code_Or_Passports)
ORDER BY Tbl_Register.R_ID DESC

end


و برای روش شما امدم دستور تاریخ و زمان جداگانه یک بار دادم. به این صورت
--Declare @id int;
declare @date date;
declare @time time;
--Select @id = isnull(max(CBF_ID),0) + 1 from Tbl_Cart_Bank_Forosh;
select @date = (SELECT CONVERT(date, getdate()));
select @time=(SELECT CONVERT(VARCHAR(8),GETDATE(),108));
و به این صورت برای ذخیره استفاده کردم .
if @StatementType='Insert'
INSERT INTO Tbl_Register
(R_Guild, R_Guild_Name, R_Nationality, R_Sex, R_Name, R_Last, R_Father, R_Date_Of_Birth, R_Place_Of_Brith, R_National_Code_Or_Passports, R_ID_Number, R_Serial_ID, R_Issued, R_Tel, R_Emial, R_Website, R_Logo, R_Sign, R_C_ID, R_latitude, R_longitude, R_Full_Address, R_SMS_Address, R_Zip_Code, R_ISP, R_IP_Server, R_IP_Local, R_Insert_Date, R_Insert_Time)
VALUES (CASE WHEN @R_Guild is null THEN 0 ELSE @R_Guild END ,@R_Guild_Name,CASE WHEN @R_Nationality is null THEN 0 ELSE @R_Nationality END ,CASE WHEN @R_Sex is null THEN 0 ELSE @R_Sex END ,@R_Name,@R_Last,@R_Father,CASE WHEN @R_Date_Of_Birth is null THEN null ELSE (select dbo.ShamsiToMiladi( @R_Date_Of_Birth)) end,@R_Place_Of_Brith,@R_National_Code_Or_Passport s,@R_ID_Number,@R_Serial_ID,@R_Issued,@R_Tel,@R_Em ial,@R_Website,@R_Logo,@R_Sign,@R_C_ID,@R_latitude ,@R_longitude,@R_Full_Address,@R_SMS_Address,@R_Zi p_Code,@R_ISP,@R_IP_Server,@R_IP_Local,@date,@time )

مقدار @date برای تاریخ جاری سیستم که پرامتر صدا زدم و تاریخ قرار دادم و برای زمان @time که بار نوشتم و تعداد دفعات زیاد صدا زدم. و برای تاریخ زمان ویرایش که هر بار ویرایش میشه تاریخ و زمان و تعداد دفعات اش روجداگانه توسط تریگیر برای اون ستون میگیرم.
به این لینک سر بزنید بابت تبدیل های تاریخ میلادی و شمسی کمک میکنه.
http://barnamenevis.org/showthread.php?554375-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C-%D8%AF%D8%B1-WinForm-Application
این هم بگم تاریخ میلادی ذخیره میکنم دیتابیس و تاریخ تبدیل میکنم.