PDA

View Full Version : سوال در مورد sql command



farnoosh66
سه شنبه 21 مهر 1394, 13:44 عصر
سلام دوستان
کد زیر از یه برنامه جدا کردم اوردم بچسبونم به پروژم.ولی متوجه نمیشم چیه.میشه توضیح بدین


SqlCommand cmd = new SqlCommand("CheckQuestionNumber", con);
cmd.CommandType = CommandType.StoredProcedure;


cmd.Parameters.AddWithValue("@groupid", CmbGroups.SelectedValue);
cmd.Parameters.AddWithValue("@questionnumber", TxtTedad.Text);


cmd.Parameters.Add("@result", SqlDbType.Int);
cmd.Parameters["@result"].Direction = ParameterDirection.Output;


con.Open();
cmd.ExecuteNonQuery();
con.Close();

مثلا منظور از CheckQuestionNumber چیه؟؟؟تو پروژه ای که این کد ازش جدا کردم هرچی گشتم متوجه نشدم این چیه

محمد آشتیانی
سه شنبه 21 مهر 1394, 14:59 عصر
سلام
در دیتابیس پروژه ای که اینو ازش برداشتید یک Stored procedure وجود داره به همین نام که فراخوانی شده.



موفق باشید

farnoosh66
چهارشنبه 22 مهر 1394, 00:00 صبح
ممنون از پاسخت دوست عزیز
میشه یه راهنمایی دیگه بکنین،من عین store procedure انتقال دادم و ساختم.ولی نمیدونم چرا خطای کانکشن دیتابیس میده.توی فرم های دیگه مشکلی نیست ولی اینجا که با procedure سروکار دارم خطا میده.ایا چیز خاضی هست که باید رعایت بشه؟؟
با تشکر
136013

محمد آشتیانی
چهارشنبه 22 مهر 1394, 02:07 صبح
کانکشن استرینگ کجا مقدار دهی شده؟ منظورم مقدار con هست

farnoosh66
چهارشنبه 22 مهر 1394, 10:55 صبح
سلام
عکسشو اپلود کردم
ممنون از توجهتون
136024

محمد آشتیانی
چهارشنبه 22 مهر 1394, 11:48 صبح
سلام
کانکشن استرینگ شما مشکل داره ، از چه نسخه ای از SqlServer استفاده می کنید؟

انواع کانکشن استرینگ ، برای نسخه های مختلف SqlServer رو از اینجا میتونید مشاهده کنید
http://www.connectionstrings.com/sql-server/

ضمنا حتی الامکان عکس نذارید اینجا ، کدتون رو داخل تگ کد بگذارید

farnoosh66
چهارشنبه 22 مهر 1394, 12:25 عصر
از expree خود ویژوال استودیو 2010

اینم کدفرممه


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace ReadWordDocument
{



public partial class frmAzmonNetwork : Form
{




SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=D:\\READ WORD\\BIN\\DEBUG\\BANK.MDF;Integrated Security=True");


// Data Source=.\SQLEXPRESS;AttachDbFilename="D:\Read Word\bank.mdf";Integrated Security=True;User Instance=True
int QN = 0;
DataTable dt;
ListBox answerlist;
int gozineh;
int sahih, nazade, qalat;


public frmAzmonNetwork()
{
InitializeComponent();
}


//#region
//sqlclass sql = new sqlclass();
//#endregion


private void ClearCheck()
{


rdbCase1.Checked = false;
rdbCase2.Checked = false;
rdbCase3.Checked = false;
rdbCase4.Checked = false;




}


private void frmAzmonNetwork_Load(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter("SelectAllGroup", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
da.Fill(dt);
CmbGroups.DataSource = dt;
CmbGroups.DisplayMember = "namdars";
CmbGroups.ValueMember = "id";


//DataSet ds1 = new DataSet();
//ds1 = sql.fill("select * from tblDars");
//CmbGroups.DataSource = ds1.Tables["hi"];
//CmbGroups.DisplayMember = "namdars";






}


private void TxtTedad_KeyPress(object sender, KeyPressEventArgs e)
{
if (Convert.ToInt16(e.KeyChar) <= 57 & Convert.ToInt16(e.KeyChar) >= 48 || Convert.ToInt16(e.KeyChar) == 8)
{
}
else
{
e.KeyChar = Convert.ToChar(Keys.None);
}
}






private void btnNext_Click(object sender, EventArgs e)
{
btnPrev.Enabled = true;




if (rdbCase1.Checked == true)
{
gozineh = 1;
}
else if (rdbCase2.Checked == true)
{
gozineh = 2;
}
else if (rdbCase3.Checked == true)
{
gozineh = 3;
}
else if (rdbCase4.Checked == true)
{
gozineh = 4;
}
else
{
gozineh = 0;
}




answerlist.Items[QN] = gozineh.ToString();


if (QN < dt.Rows.Count - 1)
{


QN++;
lblQtext.Text = dt.Rows[QN]["namDars"].ToString();
rdbCase1.Text = dt.Rows[QN]["g1"].ToString();
rdbCase2.Text = dt.Rows[QN]["g2"].ToString();
rdbCase3.Text = dt.Rows[QN]["g3"].ToString();
rdbCase4.Text = dt.Rows[QN]["g4"].ToString();


}


if (QN == dt.Rows.Count - 1)
{
btnNext.Enabled = false;
btnEnd.Enabled = true;




}






if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 0)
{
ClearCheck();
}


else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 1)
{
rdbCase1.Checked = true;
}


else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 2)
{
rdbCase2.Checked = true;
}




else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 3)
{
rdbCase3.Checked = true;
}






else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 4)
{
rdbCase4.Checked = true;
}






lblQnumber.Text = Convert.ToString(Convert.ToInt32(lblQnumber.Text) + 1);


}


private void btnPrev_Click(object sender, EventArgs e)
{
btnNext.Enabled = true;
btnEnd.Enabled = false;


if (rdbCase1.Checked == true)
{
gozineh = 1;
}
else if (rdbCase2.Checked == true)
{
gozineh = 2;
}
else if (rdbCase3.Checked == true)
{
gozineh = 3;
}
else if (rdbCase4.Checked == true)
{
gozineh = 4;
}
else
{
gozineh = 0;
}




answerlist.Items[QN] = gozineh.ToString();


if (QN > 0)
{


QN--;
lblQtext.Text = dt.Rows[QN]["namDars"].ToString();
rdbCase1.Text = dt.Rows[QN]["g1"].ToString();
rdbCase2.Text = dt.Rows[QN]["g2"].ToString();
rdbCase3.Text = dt.Rows[QN]["g3"].ToString();
rdbCase4.Text = dt.Rows[QN]["g4"].ToString();
}




if (QN == 0)
{
btnPrev.Enabled = false;


}












if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 0)
{
ClearCheck();
}


else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 1)
{
rdbCase1.Checked = true;
}


else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 2)
{
rdbCase2.Checked = true;
}




else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 3)
{
rdbCase3.Checked = true;
}






else if (Convert.ToInt32(answerlist.Items[QN].ToString()) == 4)
{
rdbCase4.Checked = true;
}

lblQnumber.Text = Convert.ToString(Convert.ToInt32(lblQnumber.Text) - 1);
}


private void BtnAzmoon_Click(object sender, EventArgs e)
{
// if (string.IsNullOrWhiteSpace(TxtTedad.Text))
//{


// errorProvider1.SetError(TxtTedad, "تعداد سوالات را وارد کنید");
// return;


//}


//if (TxtTedad.Text == "0")
//{


// errorProvider1.SetError(TxtTedad, "تعداد سوالات را وارد کنید");
// return;


//}




errorProvider1.SetError(TxtTedad,"");



SqlCommand cmd = new SqlCommand("CheckQuestionNumber",con);
cmd.CommandType = CommandType.StoredProcedure;


cmd.Parameters.AddWithValue("@groupid", CmbGroups.SelectedValue);
cmd.Parameters.AddWithValue("@questionnumber", TxtTedad.Text);


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.ToString());






// Frm_Message Fm = new Frm_Message();



if (res == 0)
{
MessageBox.Show("eroor");
//Fm.lbltext.Text = "تعداد سوالات مد نظر بیشتر از تعداد سوالات موجود در بانک است";
//Fm.ImgClose.Visible = true;
//Fm.ImgYes.Visible = false;
//Fm.ImgNo.Visible = false;
//Fm.ShowDialog();
}
else
{






SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
dt = new DataTable();
da.Fill(dt);




QN = 0;




lblQnumber.Text = Convert.ToString(QN + 1);




lblQtext.Text = dt.Rows[QN]["namDars"].ToString();
rdbCase1.Text = dt.Rows[QN]["g1"].ToString();
rdbCase2.Text = dt.Rows[QN]["g2"].ToString();
rdbCase3.Text = dt.Rows[QN]["g3"].ToString();
rdbCase4.Text = dt.Rows[QN]["g4"].ToString();








btnNext.Enabled = true;
btnPrev.Enabled = false;
BtnAzmoon.Enabled = false;
ChTime.Enabled = false;
TxtTedad.Enabled = false;
CmbGroups.Enabled = false;






ClearCheck();
answerlist = new ListBox();




for (int i = 0; i < dt.Rows.Count; i++)
{
answerlist.Items.Add("0");
}
label1.Visible = true;
lblQnumber.Visible = true;
lblQtext.Visible = true;
lblTime.Visible = true;
rdbCase1.Visible = true;
rdbCase2.Visible = true;
rdbCase3.Visible = true;
rdbCase4.Visible = true;
btnEnd.Visible = true;
btnNext.Visible = true;
btnPrev.Visible = true;




if (ChTime.Checked == true)
{
// lblTime.Text = Convert.ToString((Properties.Settings.Default.Qtim e) * (Convert.ToInt32(TxtTedad.Text)));
timer1.Enabled = true;
}


else
{
lblTime.Text = "نامحدود";
}




}
}


private void btnEnd_Click(object sender, EventArgs e)
{
timer1.Enabled = false;


sahih = 0;
nazade = 0;
qalat = 0;






if (rdbCase1.Checked == true)
{
gozineh = 1;
}
else if (rdbCase2.Checked == true)
{
gozineh = 2;
}
else if (rdbCase3.Checked == true)
{
gozineh = 3;
}
else if (rdbCase4.Checked == true)
{
gozineh = 4;
}
else
{
gozineh = 0;
}




answerlist.Items[QN] = gozineh.ToString();








for (int i = 0; i < Convert.ToInt32(answerlist.Items.Count.ToString()) ; i++)
{


if (answerlist.Items[i].ToString() == dt.Rows[i]["Answer"].ToString())
{
sahih = sahih + 1;
}


else if (answerlist.Items[i].ToString() == "0")
{
nazade = nazade + 1;
}
else
{
qalat = qalat + 1;
}




}








frmNatije fmn = new frmNatije();
fmn.lblsahih.Text = sahih.ToString();
fmn.lblqalat.Text = qalat.ToString();
fmn.lblnazade.Text = nazade.ToString();


fmn.ShowDialog();
this.Close();










}


private void timer1_Tick(object sender, EventArgs e)
{
if (Convert.ToInt32(lblTime.Text) > 1)
{
lblTime.Text = Convert.ToString(Convert.ToInt32(lblTime.Text) - 1);
}
else
{
btnEnd_Click(null, null);
}

}






}
}

محمد رضا فاتحی
چهارشنبه 22 مهر 1394, 12:52 عصر
با اجازه از آقای آشتیانی...
اگه از SQL Express استفاده می کنید این کانکشن می تونه جواب گو باشه

SqlConnection con=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename="D:\Read Word\bank.mdf";Integrated Security=True;User Instance=True");
فقط این نکته رو هم در نظر بگیرید که آدرس دهی مطلق لحاظ شده که در صورتی که بخواین روی سیستم دیگه نصب بشه باید آدرس دهی نسبی رو انجام بدید

farnoosh66
چهارشنبه 22 مهر 1394, 13:23 عصر
ممنون از پاسخت دوست عزیز
ولی 2 تا سوال:

1) مورد اول اینکه با همین کانکشن تو فرم های دیگه دارم به دیتابیس وصل میشم و این مورد خطا، فقط تو این فرمم هست
2) مورد دومم این که کانکشنی که فرستادینو گذاشتم شد شبیه عکس زیر(کجاس اشتباهم؟)
136027

محمد رضا فاتحی
چهارشنبه 22 مهر 1394, 15:23 عصر
دابل کوتیشن های قبل و بعد از آدرس رو حرف کنید