PDA

View Full Version : مقدار null در select



ebtekar
یک شنبه 29 اردیبهشت 1387, 14:10 عصر
می خوام تو select گاهی اوقات مقدار نام رو برابر Null بزارم یعنی تو گزارشم نبینمش



"SELECT " + shomare + "," + name + " FROM sabt";


چه راهه حلی هستش؟

سار
یک شنبه 29 اردیبهشت 1387, 14:23 عصر
يعني چي مقدار NULL‌رو برابر NULL بنويسي؟
تو شرط ميتوني بنويسي


Select * From any where id is [not] null

ASKaffash
یک شنبه 29 اردیبهشت 1387, 16:24 عصر
با سلام
آیا این کد کار را راه می اندازد؟

Select A,IsNull(B,'') As B From T

ebtekar
یک شنبه 29 اردیبهشت 1387, 20:06 عصر
من کدم به این شکل هستش مشکل من هم این هست که اگه نخوام به اون داده ای که تو select هستش چیزی اضافه کنم خطا نگیره چون من می خوام با تیک خوردن هر چک باکس فیلد مربوط به همون تکس باکس تو گزارش مشاهده بشه



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 persenel
{
public partial class frm_print : Form
{
string name=null;
string fname=null;
string ffname=null;
string shomare=null;
public frm_print()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection objConnection = new SqlConnection("Persist Security Info=False; server=exam; database=persenel; Integrated Security=True;");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText = "SELECT " + shomare + "," + name + " FROM sabt";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
// بار گذاري جدول در ديتا آداپتور
objDataAdapter.Fill(objDataSet, "sabt");
objConnection.Close();
//********************************************
frm_report formreport = new frm_report();
crystalReport11.SetDataSource(objDataSet.Tables["sabt"].DefaultView);
formreport.crystalReportViewer1.ReportSource = crystalReport11;
formreport.ShowDialog();
}
private void frm_print_Load(object sender, EventArgs e)
{
}
private void checkBox5_CheckedChanged(object sender, EventArgs e)
{
if (checkBox5.Checked == true)
shomare = "shenasname";
else
shomare = "";


}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
name = "name";
else
name = "";
}
}
}


مشکل من بعد else هستش که نمی تونم یه داده قابل هضم به select بدم

fotrosi
دوشنبه 30 اردیبهشت 1387, 09:44 صبح
شاید کد زیر که با اجازه تون دستکاری تو کد خودتون است بتونه کمکتون کنه
کد:


privatevoid button1_Click(object sender, EventArgs e)
{
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=exam; database=persenel; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
DataSet objDataSet = newDataSet();
objDataAdapter.SelectCommand = newSqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
if(checkBox5.checked == true)
objDataAdapter.SelectCommand.CommandText = "SELECT shenasname FROM sabt";
if(checkBox1.chcked == true)
objDataAdapter.SelectCommand.CommandText = "SELECT name FROM sabt";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
// بار گذاري جدول در ديتا آداپتور
objDataAdapter.Fill(objDataSet, "sabt");
objConnection.Close();
//********************************************
frm_report formreport = newfrm_report();
crystalReport11.SetDataSource(objDataSet.Tables["sabt"].DefaultView);
formreport.crystalReportViewer1.ReportSource = crystalReport11;
formreport.ShowDialog();
}
privatevoid frm_print_Load(object sender, EventArgs e)
{
}
privatevoid checkBox5_CheckedChanged(object sender, EventArgs e)
{
//button1.performclick();
}
privatevoid checkBox1_CheckedChanged(object sender, EventArgs e)
{
//button1.performclick();
}

ebtekar
دوشنبه 30 اردیبهشت 1387, 17:15 عصر
مرسی دوست عزیز مشکلم حل شد منتها یه مقدار ایراد تو کدتون بود اونم حل کردم خیلی این روش به دردم خورد کد رو به این صورت نوشتم



SqlConnection objConnection = new SqlConnection("Persist Security Info=False; server=exam; database=persenel; Integrated Security=True;");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
SqlDataAdapter objdataadapter1 = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objDataAdapter.SelectCommand = new SqlCommand();
objdataadapter1.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objdataadapter1.SelectCommand.Connection = objConnection;
if (checkBox5.Checked == true)
objDataAdapter.SelectCommand.CommandText = "SELECT shenasname FROM sabt";
if (checkBox1.Checked == true)
objdataadapter1.SelectCommand.CommandText = "SELECT name FROM sabt";
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
objdataadapter1.SelectCommand.CommandType = CommandType.Text;
objConnection.Open();
if (checkBox5.Checked==true)
objDataAdapter.Fill(objDataSet, "sabt");
if (checkBox1.Checked==true)
objdataadapter1.Fill(objDataSet, "sabt");
objConnection.Close();
//********************************************
frm_report formreport = new frm_report();
crystalReport11.SetDataSource(objDataSet.Tables["sabt"].DefaultView);
formreport.crystalReportViewer1.ReportSource = crystalReport11;
formreport.ShowDialog();


حالا مشکل من اینه که اگه بخوام بعد یک بار گزارش گیری نوع انتخاب چک باکس هام رو تغییر بدم بازم کریستال ریپورت در صدد انجام با همون اطاعات قبلی هستش و این پیغام ظاهر میشه

the report apllication server failed
اگه یه با برنامه رو ببندم و دوباره باز کنم به روش جدید گزارش می گیره مشکل تو اینه که چطور میشه کریستال ریپورت رو رفرش کرد البته این مشکل رو قبلا داشتم منتها الان خیلی دستو پا گیر شده برام مرسی بازم اگه راهنماییم کنید