ايران ويج

نسخه‌ی کامل: اعمال تغییرات در جدول
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام دوستان.من توی پروژه ام از طریق ویزارد با یک پایگاه داده sqlارتباط برقرار کردم.حالا یه دکمه گذاشتم روی فرم اما وقتی دستورات sqlرو توی رویداد کلیک این دکمه می نویسم خطا میگیره.ممنون میشم راهنماییم کنین.مثلا میخواهم وقتی کاربر روی دکمه کلیک کرد همه ی رکوردهای جدول پاک بشن .خودم کد زیر رو مینویسم اما خطا میگیره.

delete from teachers

ضمنا از connection stringو از دستورات sql برای برقراری ارتباط استفاده نکردم و از wizardبرای ارتباط با databaseاستفاده کردم.تشکر
(۰۴-آبان-۱۳۹۲, ۰۳:۲۹:۴۴)taksa2012 نوشته است: [ -> ]سلام دوستان.من توی پروژه ام از طریق ویزارد با یک پایگاه داده sqlارتباط برقرار کردم.حالا یه دکمه گذاشتم روی فرم اما وقتی دستورات sqlرو توی رویداد کلیک این دکمه می نویسم خطا میگیره.ممنون میشم راهنماییم کنین.مثلا میخواهم وقتی کاربر روی دکمه کلیک کرد همه ی رکوردهای جدول پاک بشن .خودم کد زیر رو مینویسم اما خطا میگیره.

delete from teachers

ضمنا از connection stringو از دستورات sql برای برقراری ارتباط استفاده نکردم و از wizardبرای ارتباط با databaseاستفاده کردم.تشکر

سلام
چه خطایی میده دقیقا؟؟؟
اگه ممکنه خطا و کدتون راهم بزارید !
البته پیشنهاد میکنم هیچ موقع از روش ویزارد کار نکنید
وقتي ميخوام ديباگ كنم خطا ميگيره زير كدهاي sqlخط ميكشه.كلا اسم ديتابيس dbaseهستش و اسم جدولي كه ميخواهم ركوردهاش پاك بشن teachersهست.اگه ميشه كدها رو برام بنويسين كه با روش connection stringمحتويات جدول رو پاك كنم.ممنون ميشم.
کد:
private void btndelete_Click(object sender, EventArgs e)

        {

            SqlConnection scn = new SqlConnection();

            SqlCommand scm = new SqlCommand();
//database1=نام پایگاه داده ما که قبلا ایجاد کرده ایم
کد:
scn.ConnectionString = @”Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database1.mdf;Integrated Security=True;User Instance=True”;

            scm.Connection = scn;
//table1=نام جدول پایگاه داده که قبلا آن را ایجاد کردیم

//name=نام ستونی از پایگاه که قبلا ایجاد کردیم

کد:
scm.CommandText = “DELETE FROM table1 WHERE  name=@p1″;

            scm.Parameters.Clear();
//نامی که قرار است از پایگاه داده حذف کنیم درون تکست باکس می نویسیم
کد:
scm.Parameters.AddWithValue(“@p1″, txtdelete.text);

            scn.Open();

            scm.ExecuteNonQuery();

            scn.Close();

            scm.Dispose();

            scn.Dispose();

        }
مهندس جان بجاي data directoryآدرس ديتابيس رو بنويسم يا اينكه عينا خود همين كلمات رو تايپ كنم؟
(۰۴-آبان-۱۳۹۲, ۱۵:۵۱:۴۴)taksa2012 نوشته است: [ -> ]مهندس جان بجاي data directoryآدرس ديتابيس رو بنويسم يا اينكه عينا خود همين كلمات رو تايپ كنم؟

این کانکشن استرینگ برای زمانی هست که شما از SQLEXPRESS استفاده کرده باشید و به صورت فیزیکی ادرس بدین!اگر فایل بانک کنار پروژه باشه دقیقا |DataDirectory| راباید بنویسید تا بفهمه فایل کنارشه!
سلام.من کدهای زیر رو نوشتم ولی باز خطا میگیره.یک دکمه دارم که وقتی روش کلیک میشه بایدتمام محتویات جدول teachersرو پاک کنه.اگه میشه کدها رو اصلاح کنین تشکرضمنا نام databaseمورد نظر dbase.mdfتشکر.
کد:
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 WindowsFormsApplication7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'tosifi3616DataSet.Permissions' table. You can move, or remove it, as needed.
            this.permissionsTableAdapter.Fill(this.dbaseDataSet.teachers);

        }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection scn = new SqlConnection();
            SqlCommand scm = new SqlCommand();
            scn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\dbase.mdf;Integrated Security=True;User Instance=True";
            scm.Connection = scn;
            scm.CommandText = "delete from teachers";
          
            scm.Parameters.Clear();
            
            scn.Open();

            scm.ExecuteNonQuery();

            scn.Close();

            scm.Dispose();

          
scn.Dispose();


ضمنا بانک کنار پروژه نیست و در درایو dپوشه projectقرار دارد.

این هم خطایی که میگیره.
کد:
System.Data.SqlClient.SqlException was unhandled
  Message=An attempt to attach an auto-named database for file C:\Users\farzad\Desktop\WindowsFormsApplication7\WindowsFormsApplication7\bin\Debug\dbase.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=14
  LineNumber=65536
  Number=15350
  Procedure=""
  Server=\\.\pipe\796CF0C5-B744-44\tsql\query
  State=1
  StackTrace:
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
       at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
       at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
       at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
       at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
       at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
       at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.SqlClient.SqlConnection.Open()
       at WindowsFormsApplication7.Form1.button1_Click(Object sender, EventArgs e) in C:\Users\farzad\Desktop\WindowsFormsApplication7\WindowsFormsApplication7\Form1.cs:line 36
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at WindowsFormsApplication7.Program.Main() in C:\Users\farzad\Desktop\WindowsFormsApplication7\WindowsFormsApplication7\Program.cs:line 17
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:
کانکشن استرینگتون را درست کنید تا بعد درمورد بقیه مشکلاتش حرف بزنیم!
شما میگید
نقل قول: بانک کنار پروژه نیست و در درایو dپوشه projectقرار دارد.
بعد تو کانکشن استرینگتون گفتید از کنار پروژه بخون!
مهندس بجای datadirectoryمی نویسم d:\projectباز خطا میگیره
(۰۵-آبان-۱۳۹۲, ۰۰:۵۲:۰۸)taksa2012 نوشته است: [ -> ]مهندس بجای datadirectoryمی نویسم d:\projectباز خطا میگیره

مهندس نیستم عزیزم Biggrin
شما با روش ویزارد که رفتید جلو مشکلی ندارید درسته؟
کانکشن استرینتون توی فایل پروگرم(اگه اشتباه نکنم) ساخته شده یکبار شما میتونید همون را کپی کنید!
برادر عزیز تشکر.کارم راه افتاد.حالا چندتا ابهام دارم.اولا کار علامت @چیه که قبل از کانکش استرینک بکار میره؟دوما کار متد scm.ExecuteNonQuery();v, چیه؟
و سوما کارمتد disposeچیه؟تشکر فراوان.
صفحه‌ها: 1 2