اگر فایلها خراب باشند کلا باز نمیشن.
با مدیا پلیر دیگه ای آزمایش کردید؟
این اتفاق دو هفته قبل از پست شما افتاده و از اون موقع فایلها هر ۴۸ ساعت یک بار تست میشن.
Printable View
اگر فایلها خراب باشند کلا باز نمیشن.
با مدیا پلیر دیگه ای آزمایش کردید؟
این اتفاق دو هفته قبل از پست شما افتاده و از اون موقع فایلها هر ۴۸ ساعت یک بار تست میشن.
سلام. خطا نمیده فقط هنگ میکنه.رفتم خط به خط اجراش کردم تو همین حلقه می افته!
سلام.
تا اونجایی که بنده اطلاع دارم cpu های تک هسته ای از چند نخی پشتیبانی نمیکنند بنابراین این cpuها،قابلیت های روش های برنامه سازی همزمان (مثل تردها، asynchronous delegate و ...) رو ندارند. بهتره در این زمینه جستجو کنید شاید راه حلی وجود داشته باشه.
سلام.
دوست عزیز، اگر متن خطا و مسیری رو که درون برنامه وارد کردید با هم مقایسه کنید می بینید که دو مسیر کاملا متفاوت هست. ظاهرا فایل های پشتیبان رو بر روی desktop ذخیره می کنید ولی زمانیکه میخواید فایل رو انتخاب کنید دارید از یک مسیر دیگه (C:\programfiles) استفاده می کنید که متن خطا هم داره بهتون میگه که چنین فایلی در اون مسیر وجود نداره. مسیرهایی رو که درون برنامه وارد می کنید به دقت چک کنید تا مشکلتون برطرف بشه.(شاید دیدن مجدد ویدئو هم بهتون کمک کنه).
سلام.
مشکل بخاطر پارامتر دوم متد رندوم هست. در تابع رندوم ( (rand.next(min,max) ) همیشه مقدار max رو یکی کمتر در نظر میگیره مثلا اگر min = 1 و max = 10 باشه، یک عدد بین 1 تا 9 برای شما تولید میکنه (اعداد 1 و 9 میتونن جز اعداد تولید شده باشند ولی عدد 10 رو شامل نمیشه). برای رفع این مشکل کافیه به max یکی اضافه کنید یعنی اگر میخواید عدد رندومی بین 1 و 10 تولید کنید که خود اعداد 1 و 10 هم امکان انتخاب شدن داشته باشند بایستی بازه رو بین 1 و 11 انتخاب کنید ( min = 1 و max = 11).
بنابراین برای رفع مشکلتون به عدد موجود در آخرین سطر دیتاتیبل یکی اضافه کنید.
کدها رو نسبت به قبل بهینه تر کردم که می تونید از کدهای زیر استفاده کنید :
while (MyListResult.Items.Count < Convert.ToInt32(TxtQuestionNumber.Text.Trim()))
{
Random rand = new Random();
num = rand.Next(Convert.ToInt32(dt.Rows[0][0]), Convert.ToInt32(dt.Rows[dt.Rows.Count - 1][0]) + 1);
//
for (int i = 0; i < dt.Rows.Count ; i++)
{
if (num == Convert.ToInt32(dt.Rows[i][0]))
{
i = dt.Rows.Count;
if (MyListResult.Items.Count == 0)
MyListResult.Items.Add(num);
else if (!MyListResult.Items.Contains(num))
MyListResult.Items.Add(num);
}
}
}
موفق باشید.
veniz2008 عزیز
متاسفانه هفته ی پیش سایت پرشین گیگ غیر قابل دسترس شد و الان که دوباره راه افتاده فایل های این آموزش پاک شده اند.
خواهشمندم دوباره این فایلها را آپلود نمایید.
با تشکر فراوان از شما.
تو امضا فست کد لینکش هست
http://78.47.35.18/veniz/
با تشكر از Veniz عزيز باطر اين آموزش ها
يه سوال داشتم :
چطور ميتونيم هنگام وارد كردن داده(مثلا بر اساس گروه ميخوام سوال وارد كنم و هربار كه يه سوال ثبت ميشه فوكوس روي همون گروه بمونه) فوكوس همچنان روي همون كمبوباكسي كه روش هستيم بمونه و نياد روي ايندكس صفر .
البته شرمنده بابت اين سوال .
سلام من در قسمت برگزاري آزمون بعداز اينكه تعداد سوالات و گروه امتحاني را انتخاب كردم بعد نمايش دو سه بار سوالات ، سيستم هنگ مي كند علت چيست ؟
تمام قسمت هاي كد را چك كردم مشكل نداشت
سلام.
دوست عزیز وقتی خطایی براتون اتفاق می افته باید کدتون رو بذارید تا بشه راهنمایی درستی رو انجام داد. الان با این کار باید دو پست اضافه دیگه هم ایجاد بشه!. یکی برای گذاشتن کد شما و دیگری هم برای جواب من.
بگذریم...
قبل از اینکه کدتون رو بذارید چند تا نکته رو میگم شاشد مشکلتون حل شد :
1. جستجوی سوالات غیر تکراری رو به SQL بسپارید. این کار هم بسیار اصولی تر هست و هم سریعتر.
2. اگر اصرار به جستجوی سوالات در سمت ویژوال و با کدهای سی شارپ رو دارید، حتما توضیحات پست 169 همین تاپیک (چندتا پست بالاتر) رو مطالعه کنید. چون هم دلیل خطا رو توضیح دادم و هم کد بهینه تری رو قرار دادم تا سرعت جستجو و نمایش سوالات افزایش پیدا کنه.
موفق باشید.
ممنون كه پاسخ داديد
ولي در قسمت كد هاي زير در اجرا خطا مي گيرد فيلم ها چند با با دقت نگاه كردم ولي مشكل حل نشد
public void UncheckRadioButton(Control parent)
{
foreach (Control ctrl in Parent.Controls)
{
if (object.ReferenceEquals(ctrl.GetType(), typeof(RadioButton)))
{
((RadioButton)ctrl).Checked = false;
}
}
}
از اينكه به بهترين شكل ممكن و در نهايت آرامش و باحوصله آموزش داده ايد بسيا ر متشكر و ممنونيم انشااله اين آموزش زكات علم ات باشد
ديگر اينكه خطا فقط در حرف p بود كه حل شد p با حرف كوچك
public void UncheckRadioButton(Control parent)
{
foreach (Control ctrl in parent.Controls)
{
if (object.ReferenceEquals(ctrl.GetType(), typeof(RadioButton)))
{
((RadioButton)ctrl).Checked = false;
}
}
}
سلام.
عذر میخوام بابت دیر جواب دادن.
واقعیتش اینه که روی کاغذ و بصورت تئوری انجام دادن تمام کارهای sql با استفاده از query امکان پذیر هست! ولی در عمل بعضی از موارد میتونه دشوار باشه (من خودم بعضی هاش رو انجام ندادم مثل همون قسمت SQL Server Configuration Manager) ولی بعضی دیگه از موارد مثل ساخت user و دادن سطح دسترسی و ... کار راحت تری هست.
ولی در عمل معمولا در سیستم های کلاینت - سروری نیاز خواهید داشت که حداقل یکبار رو بصورت دستی به تنظیم خصوصیات و ریزه کاری ها بپردازید (یا حضوری یا از راه دور (مثل استفاده از Teamviewer)).
موفق باشید.
سلام.آقا شرمنده.مشکل از پلیر من بود.کدک هاشو گرفتم درست شد.شرمنده که اشتباه خودم رو به پای اشتباه شما حساب کردم.خیلی معذرت میخوام و ممنون بابت ویدیوها
سلام خدمت ونیز عزیز که این آموزش ها رو زحمت کشیدن و گذاشتن.من تا ویدیو ی شیشم دیدم.به نظرتون بهتر نیست دست کاربر رو خیلی باز نگذاریم.مثلا وقتی در فرم سوالات روی گرید کلیک میکنه اطلاعاتش میاد داخل تکست باکسا.حالا فرض کنید کاربر کلید افزودن رو زد،پس دکمه ی حذف و ویرایش غیر فعال میشه.ولی گرید فعاله و کاربر میتونه با کلید روی اون اطلاعات رو وارد تکست باکسا کنه و اطلاعات تکراری وارد کنه.
من یه پروژه ی دیگه تو همین تالار دیدم که اومده بود چند تا حالت تعریف کرده بود.مثل حالت GoToAddOrEditMode .بع میومد تو این حالات ،بسته به این که چه کلیدی زده بشه،گرید و دکمه های دیگر را غیر فعال میکرد و اجازه ی کارای بیهوده به کاربر نمیداد و به عبارتی کاربر نمیتونست تو پروژه خرابکاری بکنه.یا مثلا در اینجا وقتی کلید افزودن فعال میشه،دیگه حالتی برای انصراف نداریم.میشه اینم توضیح بدین چجوری بزاریم.ممنون
سلام.
دقیقا متوجه منظورتون نشدم ولی اگر درون ویدئوها رو دقت کنید در یک لحظه یا کلید "ثبت" فعال هست یا کلیدهای "حذف" و "تصحیح".
مثلا در لحظه اولیه فقط دکمه ثبت فعال هست ولی وقتی کاربر، یک رکورد خاص رو انتخاب میکنه معناش این هست که قصد داره یا تصحیح کنه یا حذف رو انجام بده، به همین خاطر دکمه ثبت رو براش غیرفعال میکردیم ولی اینو بدونید که شیوه طراحی کاملا سلیقه ای هست.
به قول شما یه نفر به یه شکل دیگه ای طراحی رو انجام میده و من به یه شکل دیگه. باید نرم افزارهای مختلف رو ببینید و با توجه به سلیقه خودتون بهترین شیوه رو انتخاب کنید (در کل نمیتونم در بخش طراحی بخاطر سلیقه ای بودن اظهارنظر بیشتری رو انجام بدم).
برای حالت انصراف هم میشه یه دکمه گذاشت و درون اون وضعیت دکمه ها رو به حالت پیش فرض تغییر داد (دکمه ثبت فعال بشه و دکمه های حذف و تصحیح غیر فعال و تکست باکس ها هم خالی بشن).
ممنون که جواب دادین.
منظورم اینه که وقتی کاربر دکمه ی افزودن رو میزنه،خب حتما منظورش افزودن یک رکورد بوده.حالا باید دکمه ی حذف و ویرایش غیر فعال بشه و دیگه نباید بتونه سطر جدیدی رو انتخاب کنه.چرا که هدفش افزودن یک سطر جدید بوده.کلید انصراف هم اگه بزاریم خوبه.چرا که وقتی انصراف رو زد،دوباره دکمه ی افزودن و ویرایش و حذف فعال میشه و گرید هم فعال میشه.یعنی عملیات کنونی که قصد انجامش رو داشتیم،لغو میشه.در کل منظورتون رو فهمیدم.ممنون
با سلام و تشکر از Veniz2008! میخواستم بپرسم اگه نخواستیم در بخش گزارش گیری از نمایش زمان استفاده کنیم،نیازی به دیتا ست نیست و میشه فقط از data table استفاده کردعــــایا؟
بله دوست عزیز
ممنون دوست عزیز.فایل ها سالم بود.مشکل از پلیر من بود.عذر خواه هستم
با سلام و تشکر از آموزش بسیار خوبتان که برای ما شهرستانی ها که دسترسی به کلاسهای معتبر وحرفه ای نداریم بهترین مرجع آموزشی برای یادگیری است
من ویدوئوی مربوط به گزارش گیری را دیدم و سوالی برای من پیش آمد
وقتی در فیلدهای بانک اطلاعاتی من متن فارسی انگلیسی باهم وجود داشته باشد در هنگام گزارش گیری این متون بهم ریخته نمایش داده میشوند
با اینکه این متون در دیتابیس بصورت درست ذخیره شده اند و هنگام نمایش سوال در فرم بهم ریخته نیست اما هنگامی که در گزارش گیری آورده میشود بهم ریخته می شود
ضمنا من هم برای شیء Data و هم برای page در استیمول خاصیت right to left را true قرار دادم اما باز در هنگام گزارش گیری این مشکل وجود دارد
سوال من این است که آیا راه حلی برای این مشکل وجود دارد؟ و یا استفاده از دیتاتیبل باعث ایجاد این مشکل میشود
چون وقتی از خود اطلاعات جدول در استیمول گزارش میگیرم فیلدها به درستی دیده میشوند.
با تشکر
سلام.
مشکل از دیتاتیبل نیست، بلکه باید یک خاصیت رو در محیط استیمول برای Text ها فعال کنید که بصورت پیش فرض False هست.
برای حل این مشکل در محیط استیمول، همه Text ها رو با گرفتن کلید Ctrl انتخاب کنید. بعدش در قسمت properties یک گزینه Text Options دارید که خصوصیات کلی متن رو نمایش میده. در بین خصوصیاتش یک گزینه به نام RightToLeft داره که بصورت پیش فرض False هست. این گزینه رو بصورت دستی با کلمه True جایگزین کنید. فایل گزارشتون رو save کنید و دوباره تست کنید.
http://veniz2008.persiangig.com/image/az4.JPG
نتیجه رو هم می تونید در تصویر زیر مشاهده کنید :
http://veniz2008.persiangig.com/image/az3.JPG
موفق باشید.
جناب Veniz 2008 شما در ویدئوی سوم یا چهار -اگر اشتباه نکنم- برای پر کردن کمبو باکسی که در زمان لود فرم اتفاق می افته یه روش استاندارد گفتید که من فقط کدش رو یه جایی یادداشت کردم، الان که دارم یکی از برنامه های قدیمی مو بازسازی می کنم، اون کد رو که می نویسم کار نمی کنه و خطا میگیره، من اشتباه نوشتم یا کد شما در C#2008 اجرا نمیشه؟
کدی که من نوشتم :
dataGridViewX1.DataSource =b.ShowBakhsh((DataRowView)cmbShahrestan.SelectedV alue)["id"]);
سلام جناب ونیز
ضمن تشکرات فراوان بابت آموزش خوب و عالیتون
وقتی میخوام فرم اصلی رو لود کنم و در لود اون ابتدا فرم لوگین لود میشه ـ اروری بصورت زیر میده :
ضمیمه 118229
کدهام هم دقیقا کدهای خودتون هست
میدونم که این به این معنیه که هنوز منو ساخته نشده ولی هرکاری میکنم این مشکلم رفع نمیشه
واقعا مونم چیکار کنم ممنون میشم اگه راهنماییم کنیناینم کدهای مربوط به لود فرم اصلی
کد HTML:
private void FrmMain_Load(object sender, EventArgs e)
{
FrmLogin flogin = new FrmLogin();
flogin.ShowDialog();
if (flogin.DialogResult !=DialogResult.OK)
Application.ExitThread();
if (FrmLogin.myflag == 1)
{
menuStrip1.Items[
"M0"].Enabled = false;
}
شاید اسم این ایتمت اشتباه هست که خطای نال رو بهت میده
خواهش میکنم همیشه باید به نکات ریز در کار باید توجه کرد ضمنا باید از ونیز تشکر کنی من خیلی چیزا رو از اون یاد گرفتم
مرسی از لطفتون
من به برنامه نویسی خیلی علاقه دارم ، از روز اولی که رفتم دانشگاه به C++ علاقمند شدم. هنوزم دارم ادامه میدم. بزرگانی مثل شما و جناب ونیز هستند که به آدم روحیه و امید میدن . با آرزوی موفقیت و شادی روز افزون
راستی یه سوال ، فقط اگه خنده دار بود بهم نخندین :d
میخوام به یه روش دیگه این برنامه رو پیاده کنم . یعنی یه کلاس در نظر بگیرم برای هر سوال یه شیی بسازم که دارای همین خصوصیت ها باشه یعنی یه چیز تو این مایه ها:
class
Question
{
private int QuestionID ;
private int GroupId;
private string QuestionText ;
private string Case1 ;
private string Case2 ;
private string Case3 ;
private string Case4 ;
private int Answer;
}
بنظرتون تو افزایش کارآیی برنامه تاثیری داره ؟
سلام علیکم. ببخشید در قسمت 9 و در بخش ایجاد اعداد تصادفی گیر کردم!
من تمامی کدهارو درست وارد کردم ولی این ارور رو میده
این کدهای من:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AzmoonGir
{
public partial class frmTest : Form
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AzmoonGir;User ID=sa;Password=123456;Persist Security Info=True");
DataTable dt;
int rndNum;
public frmTest()
{
InitializeComponent();
}
private void frmTest_Load(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter("sp_SelectAllGroup", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "GroupName";
comboBox1.ValueMember = "GroupId";
}
private void button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("sp_CheckQuestionNumber", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("QuestionNumber", textBox1.Text);
cmd.Parameters.AddWithValue("GroupId", ((DataRowView)comboBox1.SelectedItem)["GroupId"]);
cmd.Parameters.Add("@Result", SqlDbType.Int);
cmd.Parameters["@Result"].Direction = ParameterDirection.Output;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
int res = Convert.ToInt32(cmd.Parameters["@Result"].Value);
if (res == 0)
{
MessageBox.Show("تعداد سوالات کمتر از میزان درخواستی شما می باشد");
}
else if (res == 1)
{
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
dt = new DataTable();
da.Fill(dt);
ListBox lst = new ListBox();
while (lst.Items.Count < int.Parse(textBox1.Text))
{
Random rnd = new Random();
rndNum = rnd.Next((int)dt.Rows[0][0], (int)dt.Rows[dt.Rows.Count][0]);
for (int i = 0; i < dt.Rows.Count - 1; i++)
{
if (rndNum == (int)dt.Rows[i][0])
{
for (int j = 0; j < lst.Items.Count; j++)
{
if (rndNum == (int)lst.Items[j])
{
j = lst.Items.Count;
}
else if (j == lst.Items.Count - 1)
{
lst.Items.Add(rndNum);
}
}
}
}
for (int i = 0; i < lst.Items.Count; i++)
{
listBox1.Items.Add(lst.Items[i]);
}
}
}
}
}
}
این هم تصویر ارور:
ضمیمه 119109
خطات خیلی ساده اس میگه این سطر که داری بهش اشاره میکنی بزرگتر از تعداد سطرهاست حلقه ات رو باید جوری اصلاح کنی که بهت گیر نده ضمنا چون مقادیر دیتا تیبل از صفر شروع میشه اون عدد رو منهای یک بکن
سلام
میشه لطفا در مورد connection string توضیح بدین!
توی پروژه شما از server استفاده کردین برای معرفی دیتا بیس . بعضی جاهای دیگه من دیدم از data source استفاده می کنند . همچنین در مورد بقیه گزینه ها .
پروژه من اصلا به دیتا بیس وصل نمی شه. :ناراحت:من اسمه دیتا بیسم و یادم نیست و وقتی می خوام وارد خود sql server management شم و با دیتا بیس conect شم از . (دات) استفاده می کنم و توی کانکشن استرینگ هم فقط از .(دات) استفده می کنم ! دلیلش همینه که به دیتا بیس وصل نمیشه؟ اگه مشکلش اینه راهنماییم کنید باید اسم دیتا بیسمو از کجا پیدا کنم .
ممنون میشم راهنماییم کنید .
من قسمت اول رو دانلود موقع اکسترکت رمزمیخواد توی متن هاتون توضیحی درمورد رمزنداده بودید این مشکل را رفع کنید لطفا
ویدئوهایی رو که خودم بر روی پرشین گیگ آپلود کردم، پسورد ندارند ولی در مورد ویدئوهای آپلود شده بر روی سرور جناب FastCode بی خبرم (هر چند تا چند وقت قبل اونها هم پسورد نداشتند. اگر از اونجا دانلود کردید و پسورد دارند با خودشون مکاتبه کنید).
موفق باشید.
باسلام وتشکرفراوان ازشما
ای کاش ازتکنولوژی های جدید مانندlinqتوی این پروژه استفاده می کردید
چون sqlو اینطوری استفاده ازاون تقیربا منسوخ شده وخیلی کم استفاده میشه چون کدنویسی زیادی داره اگرازتکنولوژی های نواستفاده می کردید هم وقت کمتری میگرفت وحجم فیلم ها پایینترمیومدودوستان هم ازهمین صفربا راحتترنوشتن عادت میکردند
فایل شماره 1 رمزداشت
https://barnamenevis.org
بااین رمزبازشد